简单的php脚本添加用户到mysql数据库不工作

nbysray5  于 2021-06-25  发布在  Mysql
关注(0)|答案(3)|浏览(216)

在我添加代码来检查数据库中是否已经存在该用户之前,脚本在添加新用户时工作得很好,这是我无法理解为什么它不工作的部分。这是一个只测试android应用程序的环境,所以我更喜欢最简单的版本。

<?php

require_once 'connect_db.php';
$conn = new mysqli($hostname, $admin_name, $admin_pwd, $database);
if($conn->connect_error) {
    die($conn->connect_error);
}

if(isset($_REQUEST["username"]) && isset($_REQUEST["email"]) && isset($_REQUEST["password"]) && isset($_REQUEST["user_type"])) {
    echo "Welcome ". $_REQUEST['username']. "<br />";

    $name = $_REQUEST['username'];
    $email = $_REQUEST['email'];
    $pwd = $_REQUEST['password'];
    $user_type = $_REQUEST['user_type'];

    // first check if user already exists
    $query = "SELECT 1 FROM users WHERE `EMAIL` = '$email'";
    $result = $conn->query($query);
    if (!$result) die("Database access failed: " . $conn->error);

    if (mysqli_num_rows($result) > 0) {
        echo "Error inserting user into database. User already exists";
    } else {
        // then do insert new user
        $query_insert_user = "INSERT INTO users (`NAME`, `EMAIL`, `PWD`, `USER_TYPE`) VALUES ('$name', '$email', '$pwd', '$user_type')";

        if ($conn->query($query_insert_user) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $query_insert_user . "<br>" . $conn->error;
        }
    }

    $result->close();
    $conn->close();

} else {
    echo "Error inserting user into database. Missing user parameters";
}

?>

oxcyiej7

oxcyiej71#

一些来自朋友的示例代码就行了。我改为:

// first check if user already exists
    $query = "SELECT 1 FROM users WHERE NAME = '$name' OR EMAIL = '$email'";
    $result = mysqli_fetch_array(mysqli_query($conn,$query));
    if (isset($result)){
        echo 'username or email already exist';
yvgpqqbh

yvgpqqbh2#

我无法测试它,但乍一看我建议:
将查询更改为jesper的建议(虽然“”应该扩展变量,但是…)
可能是因为 mysqli_num_rows($result) 什么时候 $result->num_rows 应该用于oop吗?请看php手册mysqli-result.num-rows
祝你好运。

tktrz96b

tktrz96b3#

换条线
$query=“从用户中选择1,其中 EMAIL ='$email'';

$query=“从用户中选择1,其中 EMAIL ='“$电子邮件。”'“;

相关问题