我的else if
无效。你能告诉我我犯了什么错误并解释它是如何工作的吗?谢谢!
这是我的PHP代码。
<?php
include_once('config.php');
if(isset($_POST['username'])){
$username = $_POST['username'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$password = $_POST['password'];
if(strlen($password)<6){
exit ('Password must contain 6 symbols');
}
$password = md5($password);
$query ="INSERT INTO register(username,first_name,last_name,email,phone,password) VALUES ('$username', '$first_name', '$last_name', '$email', '$phone', '$password')"
or die(mysqli_error($connect));
if($result=mysqli_query($connect,$query)) {
echo '<h3><font color="red">You have successfully registered</font></h3>';
}else if (mysqli_num_rows($result)==0) {
exit("Username already exists");
}
}
?>
答案 0 :(得分:2)
mysqli_num_rows()
只能与SELECT
个查询一起使用,它会返回结果集中的行数。
要测试修改查询影响的行数,请使用mysqli_affected_rows()
。对此的论证应该是$connect
,而不是$result
(这只是一个布尔值)。
$result = mysqli_query($connect, $query);
if (!$result) {
die (mysqli_error($connect));
} elseif (mysqli_affected_rows($connect) == 0) {
exit ("Username already exists");
} else {
echo '<h3><font color="red">You have successfully registered</font></h3>';
}
答案 1 :(得分:1)
试试这个:
$result=mysqli_query($connect,$query);
if($result) {
echo '<h3><font color="red">You have successfully registered</font></h3>';
}else {
exit("Username already exists");
}
因此,您使用第一条指令运行查询,然后将查询结果分配给$ result。接下来,检查$ result exitsts。如果是,则表示已插入用户。如果不是,则复制用户。您不需要向else添加if语句来执行此检查。