从WAMP服务器获取数据时SQL查询语法错误求助:[name]=?附近报错
解决MySQL查询中的
[name]=? and [password]=?语法错误 嘿,这个问题我太熟悉了——你是把SQL Server的语法习惯带到MySQL里啦!
问题根源
MySQL 不支持用方括号[]包裹列名,这是SQL Server特有的写法。MySQL识别的列名分隔符是反引号`,如果你的列名不是MySQL的保留关键字,甚至可以直接写列名不用任何包裹。
修正后的正确写法
你可以根据情况选下面两种方式:
- 如果
name和password不是保留字(绝大多数情况下都不是),直接去掉方括号:SELECT * FROM your_table_name WHERE name=? AND password=? - 要是你担心列名和保留字冲突(或者就是习惯用分隔符),换成反引号:
SELECT * FROM your_table_name WHERE `name`=? AND `password`=?
额外提醒
既然你已经在用占位符?了,一定要确保是通过**预处理语句(Prepared Statement)**执行这条SQL,别直接拼接字符串,这样既能避免SQL注入,也能让占位符正常工作。
内容的提问来源于stack exchange,提问作者Ashutosh Gupta
相关产品推荐
相关产品推荐

