gpt4 book ai didi

mysql - 为什么我必须在 MySQL 查询中的表名周围使用反引号?

转载 作者:可可西里 更新时间:2023-11-01 07:49:56 25 4
gpt4 key购买 nike

据我所知,反引号不是必需的,例如,查询中的表名:("INSERT INTO table_name...")。此外,据我所知,在名称中使用下划线是完全可以接受的语法: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 获得的,然后在查询中使用之前用 trim 和 mysql_real_escape_string 进行了清理。 $ql_img 只是一个指向上传缩略图的目录的 url,而 $user_id 在那里用于识别登录的特定用户。这两个查询完全相同,字面意思,除了周围的反引号表名。

最佳答案

反引号仅用于转义 MySQL Reserved words 。如果没有使用任何保留关键字,它们是可选的,前提是使用的 tableNames 或 columnNames 上没有空格

这个 page 告诉允许在模式中使用的字符。

关于mysql - 为什么我必须在 MySQL 查询中的表名周围使用反引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com