Как сделать SELECT LIKE с оператором подготовки PDO - полезны ли здесь какие-либо объекты-значения? - PullRequest
3 голосов
/ 26 августа 2010

Задача состоит в том, чтобы создать запрос, который будет собирать значения, введенные пользователем в поле ввода, и извлекать записи базы данных, найденные в ходе сравнения ключевых слов. На двигателе innodb, значит, нет МАТЧЕЙ ПРОТИВ доступного правильно? Я буду использовать LIKE в индексированной таблице столбцов, надеюсь, что все в порядке.

традиционно мы будем делать:

SELECT our_column FROM our_db_table WHERE our_column LIKE '%$queryString%';

Так что, если нашей строкой запроса будет AB, мы получим и «lab», и «abnormal» точные?

1) Как мы можем достичь этого, используя PDO?


Мышление:

Что-то вроде,

$stmt = $this->_dbh->prepare("SELECT d.our_column FROM our_db_table d WHERE d.our_column LIKE ?");

Но что дальше?

Обычно я бы сделал:

$stmt->bindParam(1, $ourTableVo->getOurColumn(), PDO::PARAM_STR, 255);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_OBJ);

2) Может ли VO быть полезным в этом случае?

Заранее большое спасибо!

1 Ответ

3 голосов
/ 26 августа 2010
$stmt->bindValue(1, '%' . $ourTableVo->getOurColumn() . '%', PDO::PARAM_STRING);

Разве это не сработает?

...