【发布时间】:2014-04-18 00:49:42
【问题描述】:
我正在将旧的登录脚本从 mysql_query 转换为 pdo,但我有点挣扎
我要做的就是找出数据库中是否存在电子邮件!
我的代码
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中的count_rows这样简单的方法吗?
【问题讨论】:
-
你试过
var_dump($rows)看看你得到了什么? -
您能否发布旧的、工作 MySQL 代码,以便与您的新代码进行比较?
-
@Niet string '0' (length=1)
-
好的,现在无论你在哪里调用这个函数,把它改成
var_dump($this->doesEmailExist($userEmail))(或类似的) -
@Phil 抱歉,它不见了 :-) 但是这是你的基本选择 * from table where conditionismet -> $no_of_rows = mysql_num_rows($result);