【发布时间】:2016-09-02 00:45:46
【问题描述】:
我在 PHP 中有这一行,它正在 PDO 中构建查询参数:
$p[':criteria'] = '%' . $search . '%';
有问题的 MySQL 行如下所示:
d.d_name LIKE :criteria
问题是如果我在 $search 中输入一个数字,它会将它转换为一个字符。例如,如果我将 $search 设置为:
6008
我希望它是:
%6008%
但我得到的是:
`08%
它看起来像是对前 2 个字符进行 % 编码。我尝试使用 urldecode() 来还原它,但它没有用。它将字符串保持为 `08%。
我怎样才能阻止这种情况发生?
【问题讨论】:
-
“但我得到了什么” --- 但你在哪里得到它?
-
您使用的是框架、ORM 还是任何抽象层?
-
PHP 和 PDO 都不会转换您的数据。它保持不变。因此,您的代码没有任何问题。
-
“在结果查询中”——不,它没有。 Mysql 准确地返回你放在那里的数据。
标签: php mysql sql pdo percent-encoding