![](/img/trans.png)
[英]Checking whether e-mail address exists; or at least whether it doesn't exist
[英]Checking if e-mail address is already used
我在php上編碼注冊系統。 我試圖使不可能用相同的電子郵件地址創建兩個帳戶。 我寫了一個應該檢查它的代碼,但是它不起作用。 我可以使用同一封電子郵件創建任意多個帳戶。 它出什么問題了?
$sqlemail = "SELECT count(*) FROM 'users' WHERE email = ?";
$result = $connection->prepare($sqlemail);
$result->execute($email);
$emailused = $result->fetch();
if ($emailused!=false) {
echo 'An account with this e-mail address already exists!';
}
使email
字段成為表的唯一鍵。 然后,如果您嘗試插入一個副本,mysql將拋出錯誤。
然后,您可以處理錯誤,並顯示更友好的消息。 您可以使用$result->errorCode()
檢查錯誤。
這也使您不必在INSERT
之前進行SELECT
。
你可以試試這個,使用反引號在users
不'
$sqlemail = "SELECT count(*) FROM `users` WHERE email = ?";
if ($emailused>0) {
echo 'An account with this e-mail address already exists!';
}
即使電子郵件返回了多個結果,該腳本也會執行,因為您不會殺死該腳本! 您需要使用exit;
或die()
阻止它們繼續前進,或進行重定向或其他操作。
if ($emailused>0) {
echo 'An account with this e-mail address already exists!';
exit;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.