【发布时间】:2018-05-07 15:16:56
【问题描述】:
我在尝试执行 INSERT 时遇到问题,尽管它不应该成功。
我的表结构:
注意:given1、given2 和 given3 是必填字段。
在我的应用程序中,我执行以下方法 (https://github.com/catfan/Medoo):
$this->medoo->insert('teste', ['dado2' => 11, 'dado3' => 'teste']);
这不应该被接受,因为 data2 的类型是 SET,而 data3 的类型是 INTEGER`。即便如此,插入成功。此外,data1 不作为参数传递,即使它是必填字段。
我检查了 MySQL 日志并得到以下条目:
SET SQL_MODE=ANSI_QUOTES;
INSERT INTO "teste" ("dado2", "dado3") VALUES ('11', 'teste');
在数据库中手动运行此 SQL,我发现问题在于使用 ANSI_QUOTES。数据库以某种方式接受插入,而不是发出错误消息,而是发出警告:
我认为需要修改 Medoo 源代码或将此问题报告给 MySQL。我不知道该怎么办。
MySQL 版本为 5.7.14
我使用 MySQL Workbench 6.3.6
【问题讨论】:
标签: php mysql sql-insert ansi medoo