pdo/mysql:php中的下划线通配符在默认情况下似乎是转义的

huus2vyu  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(341)

在我的msql表中,一行的列代码为“1001000181026”。
我的php脚本只对粗体部分(1810)感兴趣,我对代码的其他字符使用下划线通配符(\)。
但是:它不适用于pdo(0个结果)!另一方面,如果我写 SELECT 手动编码到phpmyadmin中,效果很好(1个结果)。
以下是pdo/php代码(不起作用):

$code = '_______1810__'; 
$preparequery = 'SELECT * FROM table WHERE code LIKE :code';
$stmt = $conn->prepare($preparequery);
$stmt->bindValue("code", $code);
$y = $stmt->rowCount();

echo '<p>We have '.$y.' row(s).</p>'; // We have 0 row(s).

phpmyadmin中的查询工作正常:

SELECT * FROM `table` WHERE code LIKE '_______1810__'

这给了我一个结果,正如预期的那样。
php代码(pdo)可能有什么问题?谢谢你的帮助!

x7rlezfr

x7rlezfr1#

您可以将查询更改为:

SELECT * FROM table WHERE code LIKE CONCAT('_______', :code, '__')

这样您就不必担心占位符是如何工作的。另外,php方面将更加简化。

相关问题