首页 > 解决方案 > 如何使用 PDO 检查用户是否存在?

问题描述

我的 PDO 查询由于某种原因无法正常工作,页面本身似乎没有任何错误,我已经尝试修复这个问题 2 个月但没有任何效果,我得到了这个似乎没有的“最终”代码任何错误,它仍然无法正常工作。

<?php
require 'database.php';

$message = '';

if (!empty($_POST['username']) && !empty($_POST['email']) && !empty($_POST['phone']) && !empty($_POST['password'])) {
  $sql = "INSERT INTO users (username, email, phone, password) VALUES (:username, :email, :phone, :password)";
  $stmt = $conn->prepare($sql);
  $stmt->bindParam(':username', $_POST['username']);
  $stmt->bindParam(':email', $_POST['email']);
  $stmt->bindParam(':phone', $_POST['phone']);
  $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
  $stmt->bindParam(':password', $password);

  $query = $con->prepare("SELECT username FROM users WHERE username = :username");
  $query->bindParam(':username', $_POST['username']);
  $query->execute();

  if($query->rowCount() > 0){
    ?> Este usuario ya existe <?php
  } 
  else {
    if($stmt->execute()) {
      header('Location: login.php');
    }
    else {
      echo "Ocurrió un error";
    }
  }
  }
?>

标签: phpmysql

解决方案


我想这是因为您使用了不适当的变量。在您使用的 $stmt 的初始化和您使用$conn的 $query 中,请$con 确保使用正确的变量


推荐阅读