Php 检查Psql数据库中的唯一电子邮件
我正在建立一个带有登录系统的网站,我想检查给定的电子邮件是否已经存在于我的数据库中。但我不能让它工作,也没有太多的信息来描述我的问题Php 检查Psql数据库中的唯一电子邮件,php,postgresql,Php,Postgresql,我正在建立一个带有登录系统的网站,我想检查给定的电子邮件是否已经存在于我的数据库中。但我不能让它工作,也没有太多的信息来描述我的问题 // Unique email $query = 'SELECT COUNT(email) FROM users WHERE email = :email'; $stmt = $db_conn->prepare($query); $stmt->bindParam(':email', $userEmail, PDO::PARAM_STR, 40); $s
// Unique email
$query = 'SELECT COUNT(email) FROM users WHERE email = :email';
$stmt = $db_conn->prepare($query);
$stmt->bindParam(':email', $userEmail, PDO::PARAM_STR, 40);
$stmt->execute;
print_r($stmt->errorInfo());
$result = $stmt->fetchColumn();
echo $result;
结果不回显,但我不明白为什么不回显。您没有错误或结果,因为语句未执行。 如果查看日志,您将看到$stmt->execute未定义属性的警告:PDOStatement::$execute 你只是忘记了括号 因此,替换
$stmt->execute;
借
你会得到你的结果
但是我同意Matit的评论,如果你可以的话,使用唯一性索引不是一个真正的答案,但是这种检查唯一性的方法不是最好的。建议在电子邮件列上创建唯一索引,然后在插入新行时检查是否存在可能的错误
$stmt->execute();