qq_38692022
2018-04-12 10:47
采纳率: 70%
浏览 692
已采纳

php 登陆代码出错 请大神帮忙看一下

我的登陆代码

 <form action="logincheck.php" method="post">
    用户名:<input type="text" name="User_name" />
    <br />
    密码:<input type="password" name="Pwd" />
    <br />
    <input type="submit" name="submit" value="登陆" />

    <a href="register.php">注册</a>
</form>




<?php
$User_name=$_POST['User_name'];
$pwd = $_POST['Pwd'];
$sql = "select User_name,Pwd from table user_info where User_name = '$_POST[User_name]' and Pwd = '$_POST[Pwd]'";
$con = new mysqli("localhost","root","root","student");
$result = $con->query($sql); //进行数据库查询
$row = mysqli_num_rows($result);
if($row > 0)
{
    echo "该用户存在"; //向前端返回数据
}
else
{
    echo "该用户不存在"; //向前端返回数据
}
?>

图片说明

我想验证用户名和密码 但是会报错mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in H:\php\PHPTutorial\WWW\dianyingyuan\logincheck.php on line 7
该用户不存在

有没有大神能帮解决一下

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • delzzz 2018-04-16 06:20
    已采纳

    sql语句有问题,把table去掉

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • mysqli_num_rows需要结果集从 mysql_query() 的调用中得到,而不是query

     $result =mysql_query($sql,$con); //////////$con->query($sql); //进行数据库查询
    $row = mysqli_num_rows($result);
    
    评论
    解决 无用
    打赏 举报
  • qq_41375213 2018-04-19 17:06

    第一次回答问题

    你看那个报错信息: boolean given in H:\php\PHPTutor, 就说明你sql语句写错了.
    对, 你的语句多了一个table, 碰到bug, 我觉得可以使用throw调试.

    还有,你简化POST变量之后好像没有使用啊,

    评论
    解决 无用
    打赏 举报
  • qq_21499749 2018-08-12 08:37

    <?php
    $User_name=$_POST['User_name'];
    $pwd = $_POST['Pwd'];
    $sql = "select User_name,Pwd from user_info where User_name = '$_POST[User_name]' and Pwd = '$_POST[Pwd]'";
    $con = new mysqli("localhost","root","root","student");
    $result = $con->query($sql); //进行数据库查询
    $row = mysqli_num_rows($result);
    if($row > 0)
    {
    echo "该用户存在"; //向前端返回数据
    }
    else
    {
    echo "该用户不存在"; //向前端返回数据
    }
    //以下是建议优化版,用PDO参数绑定的方式防止SQL注入
    $pdo = new PDO("mysql:host=localhost;dbname=数据库名","数据库用户","数据库密码");
    $status = $pdo->prepare("select * from user_info where User_name=:a and Pwd=:b");
    $status->execute(array('a'=>$User_name,'b'=>$Pwd));
    $data = $status->fetch();
    if ($data) {
    //用户名密码正确
    }else{
    //用户名密码错误
    }
    ?>

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题