我有这个问题:
SELECT * FROM items WHERE itemcategory= 123 AND itemname LIKE '%abc%';
我想将参数传递给itemcategory
和itemname
;我试过这样的事情:
SELECT * FROM items WHERE itemcategory=".'$categoryid'." AND itemname LIKE" ."'%$itemname%'"." AND shopid=5003;
它不起作用。有人可以帮忙吗?
答案 0 :(得分:1)
你正在做的几乎是正确的,但如果你记得$var
在双引号字符串中自动展开,你可以使字符串连接复杂化
所以这更容易阅读并注意到间距问题,这就是我认为你的陈述错误
$q = "SELECT *
FROM items
WHERE itemcategory = '$categoryid'
AND itemname LIKE '%$itemname%'
AND shopid=5003";
假设您在这些变量中有有效数据,这应该可以正常工作
执行此操作而不是使用准备好的参数化查询的唯一危险是您冒SQL Injection Attack的风险 看看Little Bobby Tables偶然发生了什么 if you are escaping inputs, its not safe! 使用prepared statement and parameterized statements