PHP - SQL查询的麻烦

时间:2016-08-12 16:02:29

标签: php sql

我有这个问题:

SELECT * FROM items WHERE itemcategory= 123 AND itemname LIKE '%abc%';

我想将参数传递给itemcategoryitemname;我试过这样的事情:

SELECT *  FROM items WHERE itemcategory=".'$categoryid'." AND itemname LIKE" ."'%$itemname%'"." AND shopid=5003;

它不起作用。有人可以帮忙吗?

1 个答案:

答案 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