Php 为什么我的pdo语句结果总是返回true?
我正在将一个旧的登录脚本从mysql_查询转换为pdo,我有些挣扎 我所要做的就是找出数据库中是否存在电子邮件 我的代码Php 为什么我的pdo语句结果总是返回true?,php,pdo,Php,Pdo,我正在将一个旧的登录脚本从mysql_查询转换为pdo,我有些挣扎 我所要做的就是找出数据库中是否存在电子邮件 我的代码 public function doesEmailExist($userEmail) { $db = new PDO('mysql:host=localhost;dbname=servershop', 'user', 'pass'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION
public function doesEmailExist($userEmail)
{
$db = new PDO('mysql:host=localhost;dbname=servershop', 'user', 'pass');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $db->prepare("SELECT COUNT(`uid`) FROM `user` WHERE `email`= ?");
$stmt->bindValue(1, $userEmail);
try
{
$stmt->execute();
$rows = $stmt->fetchColumn();
if($rows == 1)
{
return true;
}
else
{
return false;
}
}
catch (PDOException $e)
{
die($e->getMessage());
}
}
无论电子邮件是否存在于表中,代码总是返回true
有没有一种简单的方法可以像在sql中计数行那样进行此操作?更改此方法:
$rows = (int) $stmt->fetchColumn();
它应该可以工作。您是否尝试过var_dump$行以查看您得到了什么?您是否可以发布旧的、正在运行的MySQL代码,以便与新代码进行比较?@Niet string“0”length=1Okay,现在无论您在何处调用此函数,请将其设置为var_dump$this->DoeSmailexist$userEmail或similar@Phil很抱歉它消失了:-但这是您的基本选择*从表中,条件集->nou_of_rows=mysql_num_rows$result;C:\Users\Niet>php-r var_dump'0'==1;打印布尔法尔斯-我反驳你的说法,如果你做'0'==1,它将是true@Henrique,不管符号是什么,你的实际答案就像一个符咒:-是的,这很奇怪。我在家的时候会做一些测试来找出为什么会这样。。。