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),则一切正常。但是我想检查查询是否有结果。
我想念什么?还是检查查询是否有结果的最佳方法是什么? 谢谢
答案 0 :(得分:2)
您的问题是这一行:
$res = $res -> fetch(PDO::FETCH_ASSOC);
在您在
中使用它之前,它会覆盖$res
的值
if($res->rowCount()!=0){
您可能应该为该值使用其他变量名称,例如
$rows = $res -> fetch(PDO::FETCH_ASSOC);