php - 我需要检查我的数据库以查看用户名或电子邮件是否已在使用中

标签 php mysql mysqli mysqlnd

到目前为止我已经启动了一两个线程,但没有任何问题得到解决。我无法使用 mysqlnd,因为我正在使用与 godaddy 共享的托管帐户。

我需要做的就是检查我的电子邮件地址和/或用户名是否正在使用;如果它们在使用中,则会抛出错误,如果没有......一切都很好。

这是我的代码:

$input_errors = array();

if (!empty($_POST['username'])) {
    $user = $_POST['username'];
} else {
    $input_errors['username'] = "Must fill out username";
}

$email = filter_input(INPUT_POST, 'usermail', FILTER_VALIDATE_EMAIL);
if (false === $email) {
    $input_errors['usermail'] = "Not a valid email address";
}

if(count($input_errors) > 0) {
    print_r($input_errors); die();
}

$sql = "SELECT COUNT(*) as amount FROM people WHERE username = ? 
       OR email = ?";
if ($stmt = $mysqli->prepare($sql)) {

    $stmt->bind_param("ss", $user, $email);
    $stmt->execute();
    $results = $stmt->get_result();
    $data = mysqli_fetch_assoc($results);

    if ($data['amount'] > 0)
    {
        print "User already exists";
    }
}

else {
$stmt = $mysqli->stmt_init();
if (!$stmt) {
    echo "Init failed";
} else {
    $cmd = "INSERT INTO people (username, email, sign_up_date) VALUES (?, ?, NOW() )";
    if ($stmt->prepare($cmd)) {
        $stmt->bind_param('ss', $user, $email );
        $stmt->execute();

        echo $stmt->affected_rows . " row(s) inserted";

        $stmt->close();

    } else {
        echo "Prepare failed";
    }
    mysqli_close($mysqli);
    }
}

bind_result() 不起作用。

最佳答案

将 sql 语句更改为以下内容:

$sql = "SELECT COUNT(*) as amount FROM people WHERE username = '".mysqli_real_escape_string($_POST['username'])."' OR email = '".mysqli_real_escape_string($email)."'";

关于php - 我需要检查我的数据库以查看用户名或电子邮件是否已在使用中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20894429/

相关文章:

javascript - 是否使用复选框

php - 从 SQL 数据库中排序类别列表中的一组子类别

php - 为什么这个 PDO 语句会默默地失败?

更新查询中的MySQL子查询选择语句

java - eclipse :com. mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障

java - 是否可以将java应用程序连接到在线数据库

php突然抛出错误 "The mysqli extension is missing. Please check your PHP configuration. See our documentation for more information."

javascript - 如何获得以下 PHP 回显以使用 PHP 变量输出此 JavaScript 警报?

php - UTF-8 到 Unicode 代码点

php - Mysqli while 循环在明显非空结果集上返回空数组