php - 检查用户存在语句是否有效,而电子邮件语句在 PDO 中无效

标签 php mysql pdo

我刚刚遇到了一个非常奇怪的问题。用户检查语句有效,而电子邮件语句由于某种原因无效。下面的代码也是在两个 if 之外定义的 $con 。我认为这不是问题,因为用户名检查确实有效。

if(!empty($username)){
    $username = $_POST['username'];

    $stmt = $con->prepare("SELECT username from users where username= :name");
    $stmt->bindParam(':name', $username);
    $stmt->execute();
    $rowcount = $stmt->rowCount($stmt);
    if($rowcount > 0){
        $errors[] = "name taken";
    }
    /* doesn't work for some reason */
    if(!empty($email)){
        if(filter_var($email, FILTER_VALIDATE_EMAIL)){
            $email = $_POST['email'];
            filter_var($email,FILTER_SANITIZE_EMAIL);
            $stmt = $con->prepare("SELECT email from users where email= :email");
            $stmt->bindParam(':email', $email);
            $stmt->execute();
            $rowcount = $stmt->rowCount($stmt);
            if($rowcount > 0){
                $errors[] = "email is already taken";
            }
        }
    }
}

如您所见,用户名 errors[] 有效,而电子邮件则无效。我什至尝试回显它仍然没有希望:(

最佳答案

if 语句中使用 $email 之前,您应该先对其进行赋值。因此,在$username之后进行初始化,例如:

if(!empty($username)){
  $username = $_POST['username'];
  $email = $_POST['email'];
  ...

关于php - 检查用户存在语句是否有效,而电子邮件语句在 PDO 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37609374/

相关文章:

大事件PHP推荐

php - SQL where 子句给出空结果

mysql - groupwise max 导致 sql_mode 错误

php - 创建受影响行的数组并在另一个查询中处理它们

php - CodeIgniter 数据库查询出错

php - 无法从数据库 php 获取图像

php - 根据另一个表的条件获取连接表的行数

php - 如何将内容适本地放入 div 中

使用 BCrypt 的 PHP 登录身份验证

php - 从 PDO 准备好的语句中获取查询