Php SQL更新:更新多行而不是单行

Php SQL更新:更新多行而不是单行,php,mysql,phpmyadmin,sql-update,Php,Mysql,Phpmyadmin,Sql Update,我正在为MySQL编写一个代码,以获取状态为“inactive”的第一行并将其设置为“active”,但每当我尝试更新列并将其设置为“active”时,我的查询都会更新多行而不是一行 date_default_timezone_set('Asia/Kolkata'); $d = time (); $date = date("Y-m-d", $d); $customer_id="1470831854"; $member_details="SELECT * FROM login_update

我正在为MySQL编写一个代码,以获取状态为“inactive”的第一行并将其设置为“active”,但每当我尝试更新列并将其设置为“active”时,我的查询都会更新多行而不是一行

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);

我认为你的代码应该改变如下

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);

因为如果您得到$list['id'],它总是从数据库中只返回一个唯一值,然后只更新一条记录我假设id是您的主键。

我想到了两种可能性:a)“id”不是唯一的b)您多次执行代码。另外:不要使用
mysql
-函数,它们已被弃用,并且在PHP7中已被删除。改用
mysqli
PDO
并使用参数化语句。另外:当您知道只有一个结果时,为什么要使用
while
-循环?