【发布时间】:2021-06-06 22:58:30
【问题描述】:
我希望获取行数以检查同一电子邮件是否已在数据库中。我尝试了几种机制,但没有成功。当我直接在数据库中运行查询时,它给了我行数,但通过 PDO 执行它给了我 0。
我使用了 fetchAll 方法手动计数,甚至使用了也不起作用的 rowCount 方法
$sql = 'SELECT count(*) FROM inbox WHERE uid = "'.$email_number.'" AND from_email = "'.$email_f.'"';
$result = $link->prepare($sql);
$result->execute();
$number_of_rows = $result->fetchColumn();
问题在于这个 $email_f,它包含 html
SELECT count(*) FROM inbox WHERE uid = "6961"
AND from_email = "abc Offers <abc@abcs.com>"
这是我从 $sql 打印的查询,当我直接在 phpmyadmin 中的数据库中执行它时,它工作正常。给我数 3 但通过执行我得到 0。
【问题讨论】:
-
你遇到了什么错误?
-
执行 PDO->execute 时,我没有获取任何数据;但如果我在 phpmyadmin 中运行打印的查询,它会给我 3 行的输出。
-
好的,我将发布一个答案,该答案在 PHP.net 站点中作为示例给出。让我们看看它是如何工作的。
-
您在同一个应用程序中是否还有其他查询正在按预期返回您的 php 文件中的数据?此外,当您尝试直接在 phpMyAdmin 中运行查询时,您是复制并粘贴 $sql 变量的输出还是手动重新键入它?如果 $email_f 的内容预计是 HTML,您是否可能遇到编码问题?