2
我在使用PHP中的PDO執行更新和插入數據庫時遇到問題。錯誤代碼表示成功,但預期的更改未反映在數據庫中。無法使用PHP/PDO在mySQL DB上更新/插入
這裏的地方設置我的連接:
$dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME;
$db = new PDO($dsn, DB_USER, DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_AUTOCOMMIT, FALSE);
我可以連接和選擇的事情就好了,但它不會更新或插入的。我嘗試過使用硬編碼的字符串,但即使這樣也行不通。這裏是代碼爲:
$ins = "insert into choice_history (id_choice_history,choice_num,choice_taken) values (0, 10, 28);";
if($stmt = $this->_db->prepare($ins))
{
$status = $stmt->execute();
return $errorcode = $stmt->errorCode();
}
我有一個類似的更新字符串,但他們都有相同的結果。
表的定義(它沒有限制):
mysql> describe choice_history;
+-------------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| id_choice_history | int(11) | NO | | NULL | |
| choice_taken | int(11) | YES | | NULL | |
| choice_num | int(11) | YES | | NULL | |
+-------------------+---------+------+-----+---------+----------------+
此錯誤代碼是始終00000(成功)。我也試着用相同的字符串調用exec(),但沒有骰子。我可以將該查詢粘貼到我的服務器上的mysql,並且它執行得很好,但是從PDO沒有任何反應。
在這一點上,我不知所措。 PDO報告成功,但數據庫中沒有任何反應。我怎樣才能找出問題所在?
嗯,這是一個愚蠢的監督。謝謝。 – CPS