V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jacob
V2EX  ›  PHP

数据库 num_rows 返回 NULL 是怎么回事

  •  
  •   jacob · 2014-10-23 17:27:35 +08:00 · 3617 次点击
    这是一个创建于 3687 天前的主题,其中的信息可能已经有所发展或是发生改变。

    数据库正常,权限正常,在mysql里可以正常查询到结果。
    但是php里就返回null。

    <?php
    session_start();
    if (isset($_POST['userid']) && isset($_POST['password'])) {
      $userid= $_POST['userid'];
      $password= $_POST['password'];
    
      $db_conn =  new mysqli('localhost', 'webauth', 'webauth', 'auth');
      var_dump($db_conn);
      if (mysqli_connect_errno()) {
        echo 'Connection failed'.mysqli_connect_errno();
        exit();
        # code...
      }
    
      $query= 'select count * from authorized_users'."where name= '".$userid."'"."&& password= sha1('".$password."')";
      $result= $db_conn->query($query);
      if ($result->num_rows) {
        $_SESSION['valid_user']= $userid;
        # code...
      }
      $db_conn->close();
    }
    ?>
    
    <html>
    <body>
    <h1>Home page</h1>
    <?php
    if (isset($_SESSION['valid_user'])) {
      echo "You are logged in as: ".$_SESSION['valid_user'].'<br />';
      echo '<a href= "logout.php">Log Out</a>';
    }
    
    else{
      if(isset($userid)){
        echo 'Could not log you in.<br />';
      }
      else {
        echo 'You are not logged in.<br />';
      }
      echo '<form method= "post" action= "authmain.php">';
      echo '<table>';
      echo '<tr><td>Userid: </td>';
      echo '<td><input type= "text" name= "userid"></td></tr>';
      echo '<tr><td>Password: </td>';
      echo '<td><input type= "password" name= "password"></td></tr>';
      echo '<tr><td colspan= "2" align= "center">';
      echo '<input type= "submit" value= "log in"></td></tr>';
      echo '</table></form>';
    }
    ?>
    <br />
    <a href="members_only.php">Members section</a>
    </body>
    </html>
    
    6 条回复    2014-10-24 12:07:54 +08:00
    hcymk2
        1
    hcymk2  
       2014-10-23 17:32:28 +08:00
    select count * from authorized_users
    mysql 可以这样写 count ?
    jacob
        2
    jacob  
    OP
       2014-10-23 17:35:55 +08:00
    @hcymk2 不好意思,那是出了问题,我不小心加上的,本来是没有的,

    这个链接是本来的样子,带行号的
    http://paste2.org/N1pMVOHN
    Delbert
        3
    Delbert  
       2014-10-23 17:40:40 +08:00   ❤️ 1
    'select count * from authorized_users' -> 'select count * from authorized_users '试试。
    中间没有空格的话就成了 authorized_userswhere 而不是 authorized_users where 了吧?
    无责任猜测。
    jacob
        4
    jacob  
    OP
       2014-10-23 17:44:51 +08:00
    @Delbert

    我了个去,还真是这个原因,说点啥好呢。
    muziyue
        5
    muziyue  
       2014-10-24 10:55:01 +08:00
    这种bug打印一下sql语句就完事了
    jacob
        6
    jacob  
    OP
       2014-10-24 12:07:54 +08:00
    @muziyue 嗯,好办法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3248 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:20 · PVG 21:20 · LAX 05:20 · JFK 08:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.