Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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
Maria DB中SQL查询的模糊语法错误_Sql_Mariadb - Fatal编程技术网

Maria DB中SQL查询的模糊语法错误

Maria DB中SQL查询的模糊语法错误,sql,mariadb,Sql,Mariadb,我的SQL查询有什么问题?我在PHPMyAdmin中得到这个错误: INSERT INTO "order" SET `user_id` = 5, `week_id` = 1, `box_settings_id` = '1', `delivery_day` = 'Thursday', `delivery_time` = 'Morning 6am - 9am', `notes` = '', `recipes` = '70, 71, 72, 74'; 而SQL调试器没有显示任何错

我的SQL查询有什么问题?我在PHPMyAdmin中得到这个错误:

INSERT INTO "order" SET `user_id` = 5, `week_id` = 1, `box_settings_id` = '1', `delivery_day` = 'Thursday', `delivery_time` = 'Morning 6am - 9am', `notes` = '', `recipes` = '70, 71, 72, 74';

而SQL调试器没有显示任何错误。

问题可能是由于使用了双引号,MySQL和MariaDB与ANSI SQL标准不同。MariaDB和MySQL将使用反勾号,而不是双引号(与字符串文本的单引号同义)。也就是说,您可以调整为非默认的
ANSI
ANSI_QUOTES
,以支持标识符的双引号:

ANSI_引号
将“
更改为“”,即标识符引号字符。这可能会破坏旧的MariaDB应用程序,这些应用程序假定“作为字符串引号字符使用”

因此,只需像对列那样在
order
表上使用反勾号即可。通常,任何标识符都可以使用反勾号

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"order" SET `user_id` = 5, `week_id` = 1, `box_settings_id` = '1', `delivery_day' at line 1

@好吧,我用这个
插入到人名集合first_name='John',last_name='Doe',我是否做得不对?forpas认为您错误地混合了插入和更新语法。我也从未见过您使用的这种非标准语法。我必须查一下,福帕斯显然也查到了:-)@ThorstenKettner-forpas是一个卑鄙的人,在他最后一次评论之后我完全忽略了他,他最终删除了叹息。这里的人不必要地刻薄(有时我们是错的。当我看到你的请求时,我完全确定你的语法是错的。然后我看到福帕斯删除了他们的评论,这让我查到了这个语法。是的,如果他们说“对不起,我错了”会更好.我同意。虽然福帕斯写了很多好的答案,也帮助了很多人。有时只是发表评论。有时我们听起来有点苛刻,但我们真的是来帮忙的。@ThorstenKettner我并不介意,语言从来不会伤害我个人,我只是介意那些快速跳转到“-1”的人。都很好。:)甚至更好,删除双引号和反勾号。这里不需要它们。;-)我不知道这件事。我在node.js中使用了它,我将研究如何避免这种回跳。非常感谢。@ThorstenKettner,
order
在中是一个保留字。@ThorstenKettner他们不知怎么说,“order”是一个保留关键字。
INSERT INTO `order` 
SET `user_id` = 5, 
    `week_id` = 1, 
    `box_settings_id` = '1', 
    `delivery_day` = 'Thursday', 
    `delivery_time` = 'Morning 6am - 9am', 
    `notes` = '', 
    `recipes` = '70, 71, 72, 74';