我使用PDO更新了數據庫中的一行。獲取PDO中更新的行的ID
$stmt = $db->prepare("UPDATE product SET price=? WHERE seller=?");
$stmt->execute(array(456,"Apple"));
這並沒有爲我工作
$updated_id = $db->lastInsertId();
我怎樣才能對更新的行的ID。
我使用PDO更新了數據庫中的一行。獲取PDO中更新的行的ID
$stmt = $db->prepare("UPDATE product SET price=? WHERE seller=?");
$stmt->execute(array(456,"Apple"));
這並沒有爲我工作
$updated_id = $db->lastInsertId();
我怎樣才能對更新的行的ID。
您可以做的最好的方法是使用PDO::rowCount()
來獲取受影響的行數。請記住,您的更新聲明可能不會只更新一個,所以,沒有辦法只獲得一個ID。
在我的情況下,只有一行將被更新,show是否有任何解決方案? – 2014-10-12 05:08:15
如果您知道要更新一行,可以使用提供給它的數據重新進行查詢。從價格=?的產品中選擇ID賣方=? – brian 2014-10-12 05:09:26
是的,它的工作,我也一樣。 我在表格中有6行。現在我想查詢並找到狀態爲1的產品,然後在其中我想爲第一個結果指定「Apple」。我該怎麼做? – 2014-10-12 05:15:57
請看看這個答案 How to get ID of the last updated row in MySQL?
或者做一個選擇同一where子句(如果你認爲它會只有一個記錄)
$stmt = $db->query("SELECT id FROM product WHERE seller=:seller");
$stmt->bindParam(':seller', $sellerName, PDO::PARAM_STR)
$row =$stmt->fetchObject();
echo $row->id;
只有1與賣家產品=蘋果 – 2014-10-12 05:07:31
哦好吧,我不認爲你可以在一個查詢中得到這些ID,你需要選擇那些,最後插入ID屬於最後插入 – Ghost 2014-10-12 05:09:27
只是先選擇ID,然後更新(反之亦然) – 2014-10-12 05:16:05