Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PDO获取和行计数(PHP)_Php_Pdo_Rowcount - Fatal编程技术网

PDO获取和行计数(PHP)

PDO获取和行计数(PHP),php,pdo,rowcount,Php,Pdo,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_

但问题是我犯了这个错误

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";
}
如果我删除If语句(有rowCount),一切都会正常工作。但是我想检查查询是否有结果

我错过了什么?或者,检查查询是否有结果的最佳方法是什么?
谢谢

您的问题是这一行:

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
在中使用之前,它将覆盖
$res
的值

$res = $res -> fetch(PDO::FETCH_ASSOC);
您可能应该为该值使用不同的变量名,例如

if($res->rowCount()!=0){

不要这样做
$res=$res->fetch(PDO::fetch_ASSOC)可能这是
$rows=$res->fetch(PDO::fetch_ASSOC)如果($res){
就足够了。@YourCommonSense你的建议起作用了。但我仍然不明白为什么我的代码不起作用。我还更改了$res=$res->fetch(PDO::fetch_ASSOC);这一行改为$row=$res->fetch(PDO::fetch_ASSOC);仍然有错误。因为你正在调用一个成员函数rowCount()在数组上。我更改了变量名,但仍然出现错误。是的,您是对的。我更改了错误的变量。
$rows = $res -> fetch(PDO::FETCH_ASSOC);