就我读取,周围不需要反响,例如,查询中的表名称:(“插入到table_name ....”)。此外,对于我的知识,UNDERSCORES是在名称中使用的完全可接受的语法:foo_bar。我的问题是,为什么这个查询失败:

mysql_query("INSERT INTO quick_links WHERE ...etc");
.

当此查询完美工作时:

mysql_query("INSERT INTO `quick_links` WHERE ...etc");
.

是“快速”或“链接”保留单词???我没有这么认为,但后来,我对mysql很新,所以我道歉。此外,在某些“存储引擎”中使用反响(参考术语的PHPMyAdmin)?如果有任何区别,我碰巧使用“innodb”。

感谢答案,我是MySQL的新手,我喜欢确保我理解这样的细微差别。

我的完整查询是:

mysql_query("INSERT INTO `quick_links` VALUES (
    '$user_id', '$ql_name', '$ql_url', '$ql_img'
)"); 
.

$ ql_url和$ ql_name是通过$ _post获得的,然后在查询中使用之前用修剪和mysql_real_escape_string消毒。 $ ql_img只是一个引用缩略图上传的目录的URL,而$ user_id是在那里的,尤其是登录的特定用户。除了周围的反响外,两个查询都完全相同table_name。

有帮助吗?

解决方案

backtick只用于逃避 mysql保留字 。如果没有使用任何保留关键字,它们是可选的,则提供了使用的桌面名称名称或列名为它。

这个 page 告诉允许的字符是用于架构。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top