首页 > 解决方案 > 为什么PHP sql代码没有插入数据库,试图注册

问题描述

<?php
  require_once("db_credentials.php");
  $conn = mysqli_connect("localhost", "root", "isdc3333", "collab_schema");
  if (isset($_POST["submit"])) {
  $first = mysqli_real_escape_string($conn, $_POST["first"]);
  $last = mysqli_real_escape_string($conn, $_POST["last"]);
  $email = mysqli_real_escape_string($conn, $_POST["email"]);
  $uid = mysqli_real_escape_string($conn, $_POST["uid"]);
  $pwd = mysqli_real_escape_string($conn, $_POST["pwd"]);

  if (empty($first) or empty($last) or empty($email) or empty($uid) or 
  empty($pwd)) {
    header("Location: signup.php?signup=empty");
    exit();
  } else {
    if (!preg_match("/^[a-zA-Z]*$/", $first) or !preg_match("/^[a-zA- 
    Z]*$/", $last)) {
      header("Location: signup.php?signup=invalid");
      exit();
    } else {
      if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        header("Location: signup.php");
        exit();
      } else {
        $sql = "SELECT * FROM users WHERE uid='$uid'";
        $result = mysqli_query($conn, $sql);
        $queryResults = mysqli_num_rows($result);
        if ($queryResults > 0) {
          header("Location: signup.php?signup=usertaken");
          exit();
        } else {
          $hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
          $sql = "INSERT INTO collab_schema.users (first, last, email, uid, 
          pwd) VALUES ('$first', '$last', '$email', '$uid', 
          '$hashedPwd');";
          $result = mysqli_query($conn, $sql);
          header("Location: signup.php?signup=success");
          exit();
        }
      }
    }
  }
} else {
header("Location: signup.php");
exit();
echo "Redirecting...";
}
?>

最后一个sql查询不起作用,你能列出错误吗?看起来代码不起作用,但每个人都说它很好。我只是放了更多的文字,因为堆栈溢出说即使我不想放更多的细节:^)

标签: phpsql

解决方案


推荐阅读