Я хочу выполнить следующий запрос mysql:
SELECT * FROM `gc_users` WHERE `name` LIKE '%anyname%'
Я пробовал это без успеха:
$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name"); $stmt->bindParam(':name', "%" . $name . "%"); $stmt->execute(); $stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE '%:name%'"); $stmt->bindParam(':name', $name); $stmt->execute();
Поэтому я спрашиваю вас, можно ли использовать групповой символ% с подготовленными операторами.
/редактировать
Спасибо. Его работа с bindValue
:
$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name"); $stmt->bindValue(':name', '%' . $name . '%'); $stmt->execute();
Он может работать с параметром bind также следующим образом:
$name = "%$name%"; $query = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` like :name"); $query->bindParam(':name', $name); $query->execute();
Это может быть альтернативой:
$className = '%' . $this->className . '%'; $query->bind_param('s', $className);