PDO rowCount()始终返回1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PDO rowCount()始终返回1相关的知识,希望对你有一定的参考价值。

我正在制作一个脚本来添加新用户。

一切正常,但现在我正在尝试过滤掉重复的电子邮件。因此,如果电子邮件已经存在,则应该给出错误消息。

但由于某种原因,$count总是> 0 ...

这是我的代码:

$query = $db->prepare("SELECT COUNT(*) FROM `users` WHERE `email` = ':email'");
$query->execute(array(
       ':email' =>  $email
        ));
$count = $query->rowCount();
echo $count;

我究竟做错了什么?

答案

enter image description hereSELECT COUNT(*)为行返回0,即1行。所以将count(*)更改为电子邮件

<?php
$query = $db->prepare("SELECT email FROM `users` WHERE `email` = :email");
$query->execute(array(
':email'    =>  $email
));
$count = $query->rowCount();
echo $count;
?>

以上是关于PDO rowCount()始终返回1的主要内容,如果未能解决你的问题,请参考以下文章

PHP PDO Update语句总是返回0行受影响的rowCount()

PDO rowCount 仅返回一个 [重复]

rowCount()始终返回0

PDO rowCount() 支持的数据库

PDO 的 rowCount() 不适用于 PHP 5.2.6+

Php pdo rollBack() 不适用于更新语句