PHP 執行mysql事務回滾時遇到的問題

1.當使用字符串拼接的方式,定義多條數據庫語句的時候,切記在每一條數據庫語句的後面要加上分號,否則,php將會對這"多條sql語句"識別爲一條。當你執行mysqli_multi_query($sql)時,PHP將會按照你的邏輯語句提醒你所謂的“第二條sql語句”出現問題,然後你又會去用mysql命令行單個執行sql語句發現並沒有報錯,正常執行沒有問題,然後發現實際就是缺少了一個分號,導致php識別成一條sql語句,造成了不必要的麻煩;

2.如果你執行了mysqli_rollback()函數,運行之後提示你執行成功,但是當你回到數據庫再檢查一遍的時候,發現其實並沒有執行成功,事務並沒有發生回滾。原因很簡單:mysql數據庫中的數據表在創建的時候回默認將數據庫引擎設置爲MYISAM,並不是InnoDB,這兩者之間的區別,有心的讀者回去查一查,這裏我簡單的說一下,MYISAM並不能執行數據庫事務操作,也就不可能執行回滾,所以導致代碼執行成功,然而事務回滾並不能成功執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章