我正在使用 PHP OOP 和 MySQL 制作在线商店。在这个项目中,我创建了一个页面,商店管理员可以在其中查看商店的所有类别,并按类别查看产品数量。
所以为了制作这个页面,我编码了这个:
$catSet = new Products();
$catShow = $catSet->GetCatp(0,10);
foreach($catShow as $cat){
$nums = $catSet->NumCatProduct($cat['cat_title']);
echo "
<tr>
<td>".$cat['table_id']."</td>
<td>".$cat['cat_title']." ($nums)</td>
<td><a href='categorydelete.php?cat_id=".$cat['cat_id']."'><span class='label label-danger'>REMOVE</span></a></td>
</tr>";
}
和NumCatProduct
方法是这样的:
public function NumCatProduct($cat)
{
$cat = $this->db->prepare("SELECT * FROM products WHERE product_category = ?");
$cat->bindParam(1,$cat);
$cat->execute();
$row_cat = $cat->rowCount();
return $row_cat;
}
但问题是每当我运行它时,我都会收到此错误:
可恢复的致命错误:无法在 Product.class.php 在线等中将类 PDOStatement 的对象转换为字符串
它基本上瞄准这条线:
$cat->bindParam(1,$cat);
所以如果你对如何解决这个问题有任何想法,请告诉我..我真的很感激。
提前致谢!
您将 PDOStatement 分配给$cat
(第 1 行),然后尝试将其用作查询的字符串参数(第 2 行)。要解决您只需要使用两个不同的变量:
public function NumCatProduct($cat)
{
$res = $this->db->prepare("SELECT * FROM products WHERE product_category = ?");
$res->bindParam(1,$cat);
$res->execute();
$row_cat = $res->rowCount();
return $row_cat;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句