передаю в функцию параметр и хочу использовать его в регулярном выражении, но этот код не работает и не выдает ошибок. Eсли вместо ':code%' пишу '$code%', т.е. просто передаю переменную, то код выполняется как должен. Хочу использовать именно подготовленный запрос. Подскажите правильный синтаксис.
function codeFindPart($code)
{
//...
$sql="SELECT code_1
FROM fkko_id
WHERE code_1 LIKE ':code%' ";
$result=$pdo->prepare($sql);
$result->bindParam(":code",$code,PDO::PARAM_STR);
$result->execute();
//...
}
На уровне запроса тоже не проблема, необходимо только учитывать что PDO подставляет самодостаточный параметр, т.е. у вас будет кусочек текста. Вот к тексту и надо приклеить символ %, для чего есть функция concat:
WHERE code_1 LIKE concat(:code, '%')
Меняйте не запрос, а саму передаваемую переменную.
function codeFindPart($code)
{
//...
$sql="SELECT code_1
FROM fkko_id
WHERE code_1 LIKE :code ";
$result=$pdo->prepare($sql);
$result->bindParam(":code", "$code%", PDO::PARAM_STR);
$result->execute();
//...
}
Почитайте тут, полезно.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости