Php 选择pdo找不到符号,如&'

Php 选择pdo找不到符号,如&',php,database,pdo,Php,Database,Pdo,PDO找不到&符号。 我的数据是: Fast & Furious 我的代码是: $sec = $db->prepare("Select * from filmler where film_ad = ?"); $sec->bindParam(1, $needle, PDO::PARAM_STR) 行数结果为0,但$pinder等于快速和快速。 我的意思是,我实际上在寻找快速和愤怒。在绑定变量后执行准备好的语句 $needle = 'Fast & Furious';

PDO找不到&符号。 我的数据是:

Fast & Furious
我的代码是:

$sec = $db->prepare("Select * from filmler where film_ad = ?");
$sec->bindParam(1, $needle, PDO::PARAM_STR)
行数结果为0,但$pinder等于快速和快速。
我的意思是,我实际上在寻找快速和愤怒。

在绑定变量后执行准备好的语句

$needle = 'Fast & Furious';
如果要查找与$Pineder完全相同的值,请尝试以下操作:

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

var_dump($sec->rowCount());
或:

如果要将LIKE运算符与%通配符一起使用,请尝试:

:


请再加一点细节。现在还不清楚你的问题到底是什么更换过滤器:电影在哪里?并将%用于$pineel:$sec->bindParam1,%%pineel%,PDO::PARAM_STR;显示实际执行语句、获取结果以及检查/转储结果的代码。可能数据库中的数据是HTML编码的。那么数据库中的数据就不是您所认为的那样了。可能有多余的空白、无法打印的字符,或者数据的编码方式与您认为的不同。运行SELECT HEXfilm_ad,其中id=?或者类似的,把结果贴出来,我们可以告诉你它到底是什么
$sec = $db->prepare('SELECT * FROM filmler WHERE film_ad = ?');
$sec->execute([$needle]);

var_dump($sec->rowCount());
$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());