2017-01-23 47 views
-2

我正在爲MySQL讀取第1行狀態爲「非活動狀態」的代碼並使其成爲「活動狀態」,但每當我嘗試更新列並使其「活動「我的查詢更新多行,而不是單行。SQL更新:更新多行而不是單行

date_default_timezone_set('Asia/Kolkata'); 
$d = time(); 
$date = date("Y-m-d", $d); 

$customer_id="1470831854"; 

$member_details="SELECT * FROM login_update WHERE customer_id ='$customer_id' AND status='inactive' ORDER BY id ASC LIMIT 1 "; 
$member = mysql_query($member_details); 
while($list = mysql_fetch_array($member)){ 
    $status = $list['status']; 
    $id = (int)$list['id']; 

} 
$date_update = "UPDATE login_update SET status='active' WHERE id = '$id'"; 
$enter_date = mysql_query($date_update); 
+3

出現兩種可能性:a)「id」不是唯一的b)您多次執行您的代碼。另外:不要使用'mysql'-函數,它們被棄用,並且在PHP7 **中被刪除**。改用'mysqli'或'PDO',並使用參數化語句。另外:當你知道*你只有一個結果時,你爲什麼使用'while'循環? –

回答

0

我覺得你的代碼應該是變化遵循

while($list = mysql_fetch_array($member)){ 
    $status = $list['status']; 
    $customerId = (int)$list['customer_id']; 

} 
$date_update = "UPDATE login_update SET status='active' WHERE id = '$customerId'"; 
$enter_date = mysql_query($date_update); 

becasue如果你得到$表[「身份證」]它總是從數據庫中返回只有1唯一值,那麼僅更新一個記錄。 我認爲id是你的主鍵。