我的查询有什么问题?
mysql_query("SELECT * FROM admin_nav1 WHERE Active = 'YES' AND WHERE LinkedID = '$WID' ORDER by 'OrderSet' ASC") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
我一直收到这个错误:
您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在'WHERE LinkedID ='6'附近使用正确的语法在第1行'OrderSet'ASC'之后使用
你应该只有一个WHERE条款.AND运算符足以将这两个条件分开.
SELECT *
FROM admin_nav1
WHERE Active = 'YES' AND LinkedID = '$WID' // <<== one WHERE clause
ORDER by OrderSet ASC
Run Code Online (Sandbox Code Playgroud)
还有一件事,您的查询将不会ORDER正确行,因为您已OrderSet使用单引号包装列名称,从而将其转换为字符串.如果您关注列名称(如果它们是保留关键字),则可以使用反引号将其换行或在表上提供别名,并使用带有该别名的列名来分隔列,但不能使用单引号.
作为一个旁注,查询是脆弱的SQL Injection,如果值(小号变量)从外面走了进来.请查看下面的文章,了解如何防止它.通过使用,PreparedStatements您可以摆脱使用值周围的单引号.
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |