Подтвердить что ты не робот

Использование LIKE в bindParam для MySQL PDO Query

Я прочитал несколько примеров того, как эти запросы должны быть написаны, но я изо всех сил стараюсь, чтобы это было похоже на запуск при использовании bindParam

Будет ли это правильным способом совместить имена пользователей, начинающиеся с?

$term = "a";
$term = "'$term%'";

$sql = "SELECT username 
        FROM `user` 
        WHERE username LIKE :term 
        LIMIT 10";      

$core = Connect::getInstance();

$stmt = $core->dbh->prepare($sql);
$stmt->bindParam(':term', $term, PDO::PARAM_STR);
$stmt->execute();
$data = $stmt->fetchAll();
4b9b3361

Ответ 1

Нет, вам не нужны внутренние одинарные кавычки, поэтому просто $term = "$term%";

Заявление, которое вы сейчас используете, будет пытаться сопоставить 'a%' вместо a%

bindParam будет следить за тем, чтобы все строковые данные автоматически указывались при выдаче инструкции SQL.

Ответ 2

Вы можете использовать bindValue, предположим, у вас есть $ query = "строка поиска"

$stmt->bindValue(':term', $query.'%'); // this will do like search for "search term XXXXX"

так же

$stmt->bindValue(':term', '%'.$query.'%');

или же

$stmt->bindValue(':term', '%'.$query);