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);