2016-08-12 2 views
-3

У меня есть этот запрос:PHP - Проблема с SQL запроса

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; 

Это не сработало. Может ли кто-нибудь помочь?

+3

Это не регулярное выражение. –

+0

Каким образом это не сработало? Получили ли вы сообщение об ошибке? –

+0

Ошибка синтаксиса. –

ответ

1

То, что вы делаете, это почти правильно, но вы можете де усложняют конкатенации, если вы помните, что $var автоматически расширяются в двойных кавычках

Так что это легче читать и вопросы распорных уведомлений, которые все, что я думаю, что не так с вашим утверждением

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

Если у вас есть достоверные данные в этих переменных это должно работать

The only danger with doing this rather than using prepared parameterised queries is that you risk SQL Injection Attack Have a look at what happened to Little Bobby Tables Even if you are escaping inputs, its not safe! Use prepared statement and parameterized statements