代码
<?php
session_start();header("Content-type:text/html;charset=utf-8");
$link = mysqli_connect('localhost','root','root','test');if (!$link) { die("连接失败:".mysqli_connect_error());}
$username = $_POST['username'];$password = $_POST['password'];$confirm = $_POST['confirm'];$email = $_POST['email'];if($username == "" || $password == "" || $confirm == "" || $email == ""){ echo "<script>alert('信息不能为空!重新填写');window.location.href='zhuce.html'</script>";} elseif ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) { echo "<script>alert('用户名至少3位且不含非法字符!重新填写');window.location.href='zhuce'</script>"; //判断用户名长度}elseif(strlen($password) < 5){ echo "<script>alert('密码至少5位!重新填写');window.location.href='zhuce.html'</script>"; //判断密码长度}elseif($password != $confirm) { echo "<script>alert('两次密码不相同!重新填写');window.location.href='zhuce.html'</script>"; //检测两次输入密码是否相同} elseif (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email)) { echo "<script>alert('邮箱不合法!重新填写');window.location.href='zhuce.html'</script>"; //判断邮箱格式是否合法
    } elseif(mysqli_fetch_array(mysqli_query($link,"login"))){
"<script>alert('用户名已存在');window.location.href='zhuce.html'</script>";
}else{
 $sql= "insert into login(username, password, confirm, email)values('$username','$password','$confirm','$email')";
 //插入数据库
if(!(mysqli_query($link,$sql))){
     echo "<script>alert('注册成功!')window.location.href='yonghu.html'</script>";
 }else{
 echo "<script>alert('数据插入失败');";
}
}
?>
网站显示错误代码:Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/123654lghx182w3b6i5p4vlvgvh/wwwroot/zhuce/zhuce.php on line 49
请问代码哪写错了,急求答复!

解决方案 »

  1.   

    你的函数 mysqli_query 返回了false mysqli_query里是一个sql 和你的数据库连接 你传的什么啊 传login什么意思呢?查询完也没有判断 就直接 fetch了 很容易造成现在的结果改一下就好了 mysqli_query错了
      

  2.   

    我改完后还是显示错误代码
    <?php
    session_start();header("Content-type:text/html;charset=utf-8");
    $link = mysqli_connect('localhost','123654lgh','etjyr2bm','123654lgh');if (!$link) { die("连接失败:".mysqli_connect_error());}
    $username = $_POST['username'];$password = $_POST['password'];$confirm = $_POST['confirm'];$email = $_POST['email'];if($username == "" || $password == "" || $confirm == "" || $email == ""){ echo "<script>alert('信息不能为空!重新填写');window.location.href='zhuce.html'</script>";} elseif ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) { echo "<script>alert('用户名至少3位且不含非法字符!重新填写');window.location.href='zhuce'</script>"; //判断用户名长度}elseif(strlen($password) < 5){ echo "<script>alert('密码至少5位!重新填写');window.location.href='zhuce.html'</script>"; //判断密码长度}elseif($password != $confirm) { echo "<script>alert('两次密码不相同!重新填写');window.location.href='zhuce.html'</script>"; //检测两次输入密码是否相同} elseif (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email)) { echo "<script>alert('邮箱不合法!重新填写');window.location.href='zhuce.html'</script>"; //判断邮箱格式是否合法
        } elseif(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'"))){
    "<script>alert('用户名已存在');window.location.href='zhuce.html'</script>";
    }else{
     $sql= "insert into login(username, password, confirm, email)values('$username','$password','$confirm','$email')";
     //插入数据库
    if(!(mysqli_query($link,$sql))){
         echo "<script>alert('注册成功!')window.location.href='yonghu.html'</script>";
     }else{
     echo "<script>alert('数据插入失败');";
    }
    }
    ?>
    能详细的说明怎么改么