2017-01-23 48 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是你的主键。