今天遇到疾行客同学提出的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
命令行演示效果如下