使用rowCount从mysql返回一个字段不起作用

时间:2017-10-01 12:52:41

标签: php mysql pdo rowcount bindparam

如果电子邮件和密码匹配,我希望以下代码从用户的mysql tblUser返回userID。目前它没有返回任何东西

<?php

     include 'config.inc.php';

     // Check whether username or password is set from android  
     if(isset($_POST['email']) && isset($_POST['password']))
     {
          // Innitialize Variable
          $result='';
          $email = $_POST['email'];
          $password = $_POST['password'];

          // Query database for row exist or not
          $sql = 'SELECT UserID FROM tblUser WHERE  email = :email AND password = :password';
          $stmt = $conn->prepare($sql);
          $stmt->bindParam(':email', $email, PDO::PARAM_STR);
          $stmt->bindParam(':password', $password, PDO::PARAM_STR);
          $stmt->execute();
          if($stmt->rowCount())
          {
             $result="true" . UserID;   
          }  
          elseif(!$stmt->rowCount())
          {
                $result="false";
          }

          // send result back to android
          echo $result;
    }

?>

1 个答案:

答案 0 :(得分:0)

  

对于大多数数据库, PDOStatement :: rowCount()不返回   受SELECT语句影响的行数。相反,使用   PDO :: query()发出带有相同的SELECT COUNT(*)语句   将谓词作为预期的SELECT语句,然后使用   PDOStatement :: fetchColumn()来检索将要的行数   被退回然后,您的应用程序可以执行正确的操作。

相反,你可以做

      if($data = $stmt->fetch())
      {
         $result="true".$data['UserID'];
      }  
      else
      {
            $result="false";
      }