Wul*_*ulf 3 php mysql sql select
可能重复:
MySQL - 何时使用单引号,双引号和反引号?
问题1
为什么这样做?
"SELECT `id` FROM `table` WHERE x= '".$y."'"
Run Code Online (Sandbox Code Playgroud)
但不是吗?
"SELECT `id` FROM `table` WHERE 'x' = '".$y."'"
^ ^
Notice the extra single quotes
Run Code Online (Sandbox Code Playgroud)
问题2对于`id`(带有奇怪的引号)id 更好吗?或者是因为双引号使它被解释为变量?
因为服务器读取x为包装的值single quote.backtick转义查询中使用的保留关键字,通常用于包装columnNames和tableNames.
在您的查询中,
SELECT `id` FROM `table` WHERE 'x' = '$y'
Run Code Online (Sandbox Code Playgroud)
x有没有一列,但一个字符串值.
对于问题2,你可以消除那些反引号,id因为它不是a Reserved Keyword,这里是MySQL中保留关键字的完整列表
作为旁注,查询易受攻击SQL Injection.请查看下面的文章,了解如何防止它.通过使用PreparedStatements,您可以摆脱使用值周围的单引号.
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |