我有一個SQL更新語句,我從PHP程序中運行。它準備好然後執行。當我在PHP中運行它時,它報告違反約束。當我從命令行運行完全相同的語句時(我通過dBug()獲取),它的工作原理沒有錯誤。這聽起來不可能,所以我一直在尋找這些陳述之間的差異。我能看到的唯一的事情是,當我用一系列參數執行它時,它們都顯示爲字符,當有些應該是整數時。在代碼中運行的SQL與MySQL命令行有什麼區別嗎?
任何建議去哪裏看?
這裏是PHP版本(我調整了一點,以使其更清晰):
$st =& $db->prepare("update tbl set uid=?, frequency=? other_id=? where id=$id");
$values = array($uid, $freq, $other_id);
$res =& $db->execute($st, $values);
new dBug ($res);
瞭解如何在PHP代碼中構建SQL字符串可能有助於發現問題。 – webbiedave 2010-04-08 16:57:38
你用什麼來準備SQL?根據你的參數編寫聲明時可能會有差異。 – 2010-04-08 17:00:34