我正在嘗試編寫一個有點智能的PHP-MySQL數據庫處理器。當這個處理器決定它需要更新時,我想報告它是否真的成功。我以爲我可以使用mysql_affected_rows
...PHP,MySQL - 你能區分行匹配和行受到影響嗎?
// Example:
// After running query "UPDATE mytable SET name='Test' WHERE ID=1"
$result = mysql_affected_rows();
if ($result >= 1) { /* Success */ }
如果,例如,有一個與ID = 1沒有行,然後$result
將。
然而,事實證明,PHP的mysql_affected_rows
是實際受影響的行,並可能仍然是如果行存在,但name
已經是「測試」。 (PHP docs甚至可以這麼說)。
如果我在命令行中運行這個,我得到有關查詢下列元信息:
Query OK, 0 rows affected (0.01 sec)
Rows matched: 1 Changed: 0 Warnings: 0
有什麼辦法,我讓在PHP的,而不是受影響的「行一致」的價值行?
[編輯]:我應該注意,我知道我可以運行一個單獨的查詢,但我不想那麼做,爲了性能。
這太好了。雖然它不能提供區分兩者的方法(所以我會在接受答案之前對其進行測試),但在我看來,這似乎是我的首選條件。謝謝! – Nicole 2010-05-28 00:46:32
我比他更喜歡他的回答! :) – Sev 2010-05-28 00:56:36
PHP lib是對MySQL C api庫的透明包裝,你真的可以閱讀MySQL文檔以更好地理解PHP/MySQL api – bobobobo 2013-05-12 10:01:07