输入数据(或数据库)中很可能存在一些已转换或不可打印的字符。例如,可能存在换行符或特殊编码的符号,或某些字符(例如
<并
>转换为HTML实体)。结果,查询包含
<abc@abcs.com>将永远不会匹配text
<abc@abcs.com>。
问题是,这只是一个猜测,没有人能告诉您实际的问题是什么,因为它是 您的 数据库, 您的 输入数据,只有 您 才能找到问题。
我写了一篇文章,解释了如何调试PDO问题。
要调试特定问题,您需要
- 确保同时为PDO和PHP启用了完整的错误报告。确实有帮助,向您显示偶发的印刷错误,拼写错误等
- 仔细检查数据库中的数据和输入以发现差异。
bin2hex()
该功能将有助于显示数据库和输入中所有不可打印和转换的字符。
在一个侧面说明,但很重要的还是:你准备语句是一个货物邪教代码是
保护什么 。它 必须 是这样的:
$sql = 'SELECt count(*) FROM inbox WHERe uid = ? AND from_email = ?'; $result = $link->prepare($sql); $result->execute([$email_number,$email_f]); $number_of_rows = $result->fetchColumn();



