Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按ANSI_引号模式插入_Php_Mysql_Sql Insert_Ansi_Medoo - Fatal编程技术网

Php 按ANSI_引号模式插入

Php 按ANSI_引号模式插入,php,mysql,sql-insert,ansi,medoo,Php,Mysql,Sql Insert,Ansi,Medoo,我在尝试执行插入时遇到问题,它成功了,尽管它不应该成功 我的表格结构: 注:given1、given2和given3是必填字段 在我的应用程序中,我执行以下方法(): 这不应被接受,因为数据2的类型为SET,而数据3的类型为INTEGER`。即便如此,插入还是成功了。此外,数据1不会作为参数传递,即使它是必填字段 我检查了MySQL日志,得到以下条目: SET SQL_MODE=ANSI_QUOTES; INSERT INTO "teste" ("dado2", "dado3") VALUES

我在尝试执行
插入时遇到问题,它成功了,尽管它不应该成功

我的表格结构:

注:given1、given2和given3是必填字段

在我的应用程序中,我执行以下方法():

这不应被接受,因为数据2的类型为
SET
,而数据3的类型为INTEGER`。即便如此,插入还是成功了。此外,数据1不会作为参数传递,即使它是必填字段

我检查了MySQL日志,得到以下条目:

SET SQL_MODE=ANSI_QUOTES;
INSERT INTO "teste" ("dado2", "dado3") VALUES ('11', 'teste');
在数据库中手动运行此SQL时,我发现问题在于使用
ANSI\u QUOTES
。数据库以某种方式接受insert,而不是发出错误消息,而是发出警告:


我认为需要修改Medoo源代码或将此问题报告给MySQL。我不知道该怎么办

MySQL版本是5.7.14

我使用MySQL Workbench 6.3.6

当MySQL服务器设置为
严格
模式时,当您尝试插入不适合列的值时,它会产生错误。通过调用
SET SQL\u MODE=ANSI\u QUOTES此严格模式很可能已禁用

您可以尝试联系Medoo framework的作者,或者使用另一个framework,或者只使用
PDO
访问您的数据库


有关更多信息,请参阅。

完美的朋友!!!谢谢你的信息。我通过在Medoo.php的第121行($commands[]='setsql\u MODE=ANSI\u QUOTES')上注释并将ANSI\u QUOTES模式直接添加到MySQL配置中,解决了这个问题。Medoo的问题是,它不应该删除所有模式,只留下ANSI_引号,应该保留其他模式并添加ANSI_引号。
SET SQL_MODE=ANSI_QUOTES;
INSERT INTO "teste" ("dado2", "dado3") VALUES ('11', 'teste');