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

据我所知,不需要反引号,例如查询中的表名:(“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就是在那里识别登录的特定用户.两个查询完全相同,从字面上看,除了周围的反引号TABLE_NAME.

解决方法:

Backtick仅用于转义MySQL Reserved words.如果没有使用任何保留的关键字,只要tableNames或columnNames上没有空格,它们是可选的.

此page告知在架构中使用允许的字符.

标签:mysql,backticks

来源: https://codeday.me/bug/20190729/1571078.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值