Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查Psql数据库中的唯一电子邮件_Php_Postgresql - Fatal编程技术网

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();