新程序員 - 我創建了一個將用戶添加到數據庫的功能。這個功能可以在USER類中找到。我已經建立了mysql,讓user_name成爲唯一的密鑰。如果用戶試圖輸入一個已經存在的名字,它不會被輸入到mysql數據庫中,但是我的表單表示確定它已經被提交併且移動到下一頁。我想讓用戶知道名稱已經存在,並在註冊表單上創建錯誤。有沒有辦法將它附加到這個函數?如何讓用戶知道該名稱已存在
function add_member($name, $email, $password)
{
global $mysqli;
$query = "INSERT INTO members
SET
user_name = '".addslashes($name)."',
user_email = '".addslashes($email)."',
password = '". md5($password) ."'";
$success = $mysqli->query ($query);
if (!$success || $mysqli -> affected_rows == 0)
{
echo "<p> An error occurred: you just are not tough enough!!! </p>";
return FALSE;
}
$uid = $mysqli -> insert_id;
return $uid;
if (!$found_error)
{
header("location: homepage.php");
}
我沒有親自使用MySQLi,所以我會將它作爲註釋:您需要使用用戶提供的電子郵件地址查詢數據庫。如果它返回的行數多於零,則它是重複的,並且以一種很好的方式告訴它們:-) – Bojangles
不要**使用'addslashes'來轉義數據庫輸入!永遠不能。 (使用'mysqli :: real_escape_string()'或[prepared statements](http://php.net/mysqli_prepare)來代替,並且爲了避免使用md5並使用醃過的散列) – knittl
@pst:更新註釋以提供準備好的語句 – knittl