在我的應用程序中,此PHP代碼應檢查現有用戶名,如果存在,請不要在數據庫中創建新行。無論如何,該應用程序仍然在MySQL數據庫中創建新行。如果在mysql中註冊語句
下面是檢查代碼:
<?php
//$password = "password";
//$username = "username";
require "conn.php";
$password = $_POST["password"];
$username = $_POST["username"];
//$url_id = mysql_real_escape_string($_GET['username']);
$sql = "SELECT * FROM UserData WHERE username ='$username'";
$result = mysql_query($sql);
if(mysql_num_rows($result) >0){
break;
}else{
$stmt = $conn->prepare("INSERT INTO UserData (username,password) VALUES (:username,:password)");
$params = array(
':username' => $username,
':password' => $password
);
$stmt->execute($params);
}
?>
你**絕不能**使用'mysql_xxx'函數這是depr自從php5.5(超過3年前)出現並自PHP7以來因安全問題而被刪除(請參閱http://stackoverflow.com/q/12859942/3992945)。請使用'mysqli_xxx'或'PDO'來代替http://php.net/manual/en/mysqlinfo.api.choosing.php。 –
這是開始時的錯誤方法。您希望在數據庫方案中創建用戶名字段UNIQUE,然後在嘗試插入新記錄時檢查是否存在違反此限制的錯誤。 – CBroe
檢查'$ sql'的內容和'mysql_num_rows($ result)'的返回值。此外,休息聲明並不屬於這裏;它用於循環。但它什麼都不做,這可能是你想要的。 CROZET關於使用現代/支持的mysql庫的建議絕對是值得注意的 –