今天遇到疾行客同學提出的medoo insert方法不能插入數據庫問題,我測試了一下 發現是可以的
而INSERT INTO "t_user" (username) VALUES ('test'); 這條語句總是無法執行,而medoo總是會幫你把數據庫的表加上雙引號 但是在命令行中無法執行。后來我搞不懂為啥medoo可以執行,發現了一個問題
SET SQL_MODE=ANSI_QUOTES 在起作用
我們整體是用insert方法插入 而這個方法在833行
$this->exec('INSERT INTO ' . $this->table_quote($table) . ' (' . implode(', ', $columns) . ') VALUES (' . implode($values, ', ') . ')');
方法調用exec方法執行sql,而exec方法在 183行核心代碼是
$this->pdo->exec($query);
核心是靠$this->pdo來完成,那么這個東西如何定義的呢
在137行定義賦值
而commands變量是需要執行的,起源於
這樣就給鏈接設定了SQL_MODE
命令行演示效果如下