获取PDO中更新行的ID

时间:2014-10-12 04:56:53

标签: php mysql pdo

我使用PDO在数据库中更新了一行。

 $stmt = $db->prepare("UPDATE product SET price=? WHERE seller=?");
             $stmt->execute(array(456,"Apple"));

这对我没有用

$updated_id = $db->lastInsertId();

如何获取更新行的ID。

3 个答案:

答案 0 :(得分:1)

您可以做的最好的事情是使用PDO::rowCount()来获取受影响的行数。请记住,您的更新语句可能不会只更新一个,因此,无法获得单个ID。

答案 1 :(得分:0)

请看一下这个答案 How to get ID of the last updated row in MySQL?

或对相同的where子句执行select(如果您认为它只有一条记录)

$stmt = $db->query("SELECT id FROM product WHERE seller=:seller");
$stmt->bindParam(':seller', $sellerName, PDO::PARAM_STR)
$row =$stmt->fetchObject();
echo $row->id;

答案 2 :(得分:0)

使用此

$sql="Update table_1 set col_1=?,col_id = LAST_INSERT_ID(col_id) where col_2=? limit 1;SELECT LAST_INSERT_ID() last_update_id;";
$stmt =$dbh->prepare($sql);
$stmt->execute(array('new_val','cond_val'));
$stmt->nextRowset();
$rez=$stmt->fetch(PDO::FETCH_ASSOC);
print_r($rez);
相关问题