LIKE запрос не работает, он просто выводит пустой.LIKE запрос не работает PDO
$stmt = $dbo->prepare("SELECT * FROM hotels WHERE h_country=:c LIKE '%m%'");
$stmt->bindValue(":c", "malaysia", PDO::PARAM_STR);
$stmt->execute();
LIKE запрос не работает, он просто выводит пустой.LIKE запрос не работает PDO
$stmt = $dbo->prepare("SELECT * FROM hotels WHERE h_country=:c LIKE '%m%'");
$stmt->bindValue(":c", "malaysia", PDO::PARAM_STR);
$stmt->execute();
Ваш SQL-синтаксис неправильно, не уверен, что вы хотите получить, но правильно будет:
SELECT * FROM hotels WHERE h_country LIKE '%' || :c || '%';
--OR
SELECT * FROM hotels WHERE h_country = :c AND <your_column_here> LIKE '%m%';
Спасибо. это сработало – Jonathan
Изменить
$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%'");
Возможно, это: http://stackoverflow.com/questions/11117134/implement-like-query-in-pdo –
вам нужно ' OR 'или' AND' между '=' и 'LIKE' и столбцом для' LIKE' – Class
Попробуйте предлагаемое здесь решение: http://stackoverflow.com/questions/583336/how-do-i -create-a-pdo-parameterized-query-with-a-like-statement – DaveG