執行SQL語句時,如 INSERT INTO table
... ON DUPLICATE KEY UPDATE ... 我依靠mysql_affected_rows()來確定是否執行插入或更新。 作爲http://dev.mysql.com/doc/refman/5.1/en/mysql-affected-rows.html MySQL網站,它指出:mysql_affected_rows()返回-1
對於INSERT ... ON DUPLICATE KEY UPDATE語句時,受影響的行值是1,如果行插入一個新行2,如果現有的行已更新。
全部被工作正常,直到我們升級到MySQL 5.1.16,當許多查詢現在有mysql_affected_rows()函數返回負一(-1)
上http://dev.mysql.com/doc/refman/5.1/en/mysql-store-result.html在MySQL網站建議的解決方法是調用函數mysql_query()在選擇查詢上執行之後的函數mysql_store_result()。
但是,PHP似乎沒有定義這樣的函數。
如何讓mysql_affected_rows()使用PHP和MySQL 5.1.16正常工作?
您是否正在使用預準備語句?順便說一下,PHP有store_result函數 - http://php.net/manual/en/mysqli.store-result.php,但是store_result在SELECTs之後調用,而不是在INSERT之後調用。 * -1表示查詢返回錯誤,或者對於SELECT查詢,在調用mysql_store_result()之前調用mysql_affected_rows()* –
我也有這個問題... –