我有此代码来检查用户名是否存在于数据库中,否则请插入数据库中。但是,它仍然会插入数据库中。
$username = $_POST['user_name'];
if (isset($_POST['user_email'])){
$sql="select user_name, user_email from user_credintals where user_name = $username";
$result = $db->query($sql);
if($result->num_rows > 1){
echo"name already exists";
}else{
$sql = "INSERT INTO
user_credintals(user_name, user_password, user_email , user_level)
VALUES('" . $db->real_escape_string($_POST['user_name']) . "',
'" . $db->real_escape_string(sha1($_POST['user_password'])) . "',
'" . $db->real_escape_string($_POST['user_email']) . "',
0)";
$result = $db->query($sql);
if(!$result){
echo 'Failed to register user, try again!';
}
}
答案 0 :(得分:0)
您正在检查行数是否大于1。因此这里不算1。您需要检查if($result->num_rows >= 1){
的含义,即等于或大于。