PDO提取和rowCount(PHP)

时间:2019-05-20 15:11:13

标签: php pdo fetch rowcount

try {
  $sql = "SELECT * FROM tbl4 WHERE tur=:tur AND link=:link";
  $res = $db -> prepare($sql);
  $res -> bindParam(":tur",$tur);
  $res -> bindParam(":link",$link);
  $res -> execute();
  $res = $res -> fetch(PDO::FETCH_ASSOC);
  if($res->rowCount()!=0){
    echo 'OK';
  }else{
    echo "No!";
  }
}catch (Exception $e) {
   echo "Error5";
}

但是问题是我得到了那个错误

Uncaught Error: Call to a member function rowCount() on array in C:\xampp\htdocs\sf-19\pages\topic.php:19 Stack trace: #0 C:\xampp\htdocs\sf-19\index.php(18): require() #1 {main} thrown in C:\xampp\htdocs\sf-19\pages\topic.php on line 19

如果删除if语句(具有rowCount),则一切正常。但是我想检查查询是否有结果。

我想念什么?还是检查查询是否有结果的最佳方法是什么? 谢谢

1 个答案:

答案 0 :(得分:2)

您的问题是这一行:

$res = $res -> fetch(PDO::FETCH_ASSOC);

在您在

中使用它之前,它会覆盖$res的值
if($res->rowCount()!=0){

您可能应该为该值使用其他变量名称,例如

$rows = $res -> fetch(PDO::FETCH_ASSOC);