tp.3.1中執行sql返回true,但是數據庫中的值沒有更新

問題描述:

在tp3.1框架中,用sava方法去執行sql,或者用原生sql去執行,打印出來的sql在代碼層提示更新成功,但是在數據庫中卻無法對數據進行更新。思來想去,無從解答。

打印Sql:

打印的sql

 

查看數據庫數據是否更新:值是沒有更新的。

 

但是當我在數據庫單獨去執行打印的sql:時,卻可以插入數據,奇怪了。

 

解決過程:這個問題的原因是Mysql中事物啓用,因此在代碼層需要先關閉事務,再去執行。貼上代碼:

$imgwhere = array();
$imgdata = array();
$imgwhere['projectid'] = $values['projectid'];
$imgdata[$values['savefiled']] = 4;
// 開始將圖片存庫
M($values['tablename'])->query("SET AUTOCOMMIT=0");
M($values['tablename'])->query("BEGIN");
$r = M($values['tablename'])->where($imgwhere)->save($imgdata);
M($values['tablename'])->query("COMMIT");
M($values['tablename'])->query("END");
M($values['tablename'])->query("SET AUTOCOMMIT=1");

 

再次執行程序,sql打印:執行成功。

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