2014-10-21 3 views
0

LIKE запрос не работает, он просто выводит пустой.LIKE запрос не работает PDO

enter image description here

$stmt = $dbo->prepare("SELECT * FROM hotels WHERE h_country=:c LIKE '%m%'"); 
$stmt->bindValue(":c", "malaysia", PDO::PARAM_STR); 
$stmt->execute(); 
+0

Возможно, это: http://stackoverflow.com/questions/11117134/implement-like-query-in-pdo –

+0

вам нужно ' OR 'или' AND' между '=' и 'LIKE' и столбцом для' LIKE' – Class

+0

Попробуйте предлагаемое здесь решение: http://stackoverflow.com/questions/583336/how-do-i -create-a-pdo-parameterized-query-with-a-like-statement – DaveG

ответ

1

Ваш SQL-синтаксис неправильно, не уверен, что вы хотите получить, но правильно будет:

SELECT * FROM hotels WHERE h_country LIKE '%' || :c || '%'; 


--OR 

SELECT * FROM hotels WHERE h_country = :c AND <your_column_here> LIKE '%m%'; 
+0

Спасибо. это сработало – Jonathan

0

Изменить

$stmt = $dbo->prepare("SELECT * FROM hotels WHERE h_country=:c LIKE '%m%'"); 

в

$stmt = $dbo->prepare("SELECT * FROM hotels WHERE h_country LIKE '%m%'"); 

Вы либо сравниваете значения с функцией LIKE, либо сравниваете их с переменной ': c'. Его одно или другое.

Если вы хотите использовать оба изменения:

$stmt = $dbo->prepare("SELECT * FROM hotels WHERE h_country=:c OR h_country LIKE '%m%'"); 
Смежные вопросы