簡體   English   中英

PHP准備語句-MySQL檢查用戶是否存在

[英]PHP Prepared Statements - MySQL Check if user exists

我不知道為什么我的代碼似乎不起作用。 我想檢查數據庫中是否存在電子郵件,如果不存在,請繼續注冊。 這是代碼:

if (empty($errors)) {  //Using Prepared Statements
// Connect to the database:
$dbc = mysqli_connect ('localhost','root', 'pass', 'book_store');  
$q = "SELECT user_id FROM users WHERE email=?";
$stmt = mysqli_prepare($dbc, $q);
mysqli_stmt_bind_param($stmt, 'i', $email);
    mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$num_rows = mysqli_num_rows($result);


if ($num_rows == 0) {  //Check if email exists
$q = 'INSERT INTO users(first_name, last_name, state, email) VALUES (?, ?, ?,     ?)';
$stmt = mysqli_prepare($dbc, $q);
mysqli_stmt_bind_param($stmt,'ssss', $fn, $ln,$state, $email);
mysqli_stmt_execute($stmt);

// Closee statement:
mysqli_stmt_close($stmt);

// Close the connection:
    mysqli_close($dbc);

} else {
echo '<h1>email exists</h1>';
} 
}
else {
 echo '<p>The Errors Occurred:<br />';
 foreach ($errors as $msg) {
     echo " - $msg<br />\n";
 }
 echo '</p><p>Please Try Again.</p>';
}
}

您已給出i ,它表示int類型的變量。 嘗試用s替換,如下所示。 $q = "SELECT user_id FROM users WHERE email=?"; $stmt = mysqli_prepare($dbc, $q); mysqli_stmt_bind_param($stmt, 's', $email);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM