Выберите pdo, не можете найти символ как & ' - PullRequest
0 голосов
/ 08 января 2020

PDO не может найти символ &. Мои данные:

Fast & Furious

Мой код:

$sec = $db->prepare("Select * from filmler where film_ad = ?");
$sec->bindParam(1, $needle, PDO::PARAM_STR)

rowCount, в результате 0, но $needle равно "Fast & Furious". Я имею в виду, что я на самом деле ищу "Форсаж" .

1 Ответ

1 голос
/ 09 января 2020

Выполнить подготовленный оператор после привязки переменных.

$needle = 'Fast & Furious';

Если вы хотите найти точно такое же значение, как $needle, попробуйте следующее:

$sec = $db->prepare('SELECT * FROM filmler WHERE film_ad = ?');
$sec->bindParam(1, $needle, PDO::PARAM_STR);
$sec->execute();

var_dump($sec->rowCount());

Или:

$sec = $db->prepare('SELECT * FROM filmler WHERE film_ad = ?');
$sec->execute([$needle]);

var_dump($sec->rowCount());

Если вы хотите использовать оператор LIKE с подстановочным знаком %, попробуйте this :

$needle = "%{$needle}%";

$sec = $db->prepare('SELECT * FROM filmler WHERE film_ad LIKE ?');
$sec->bindParam(1, $needle, PDO::PARAM_STR);
$sec->execute();

var_dump($sec->rowCount());

или :

$sec = $db->prepare('SELECT * FROM filmler WHERE film_ad LIKE CONCAT("%", ?, "%")');
$sec->execute([$needle]);

var_dump($sec->rowCount());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...