$sql = "CALL pr_cartItemsForCustomer (:customerId)";
$statement = $connection->prepare($sql);
$statement->bindValue(':customerId',$customerId);
$statement->execute();
if($statement->columnCount() > 0)
即使没有返回任何行,这也总是返回5列,检查无行的正确方法是什么?我尝试了rowCount,但是没有用。
该代码对查询有效,但在调用返回查询的存储过程时无效。
找出返回的行数的正确方法是在返回的PHP数组上使用count()
。
count()
但是,请注意,您的示例完全不需要它。如果您只想检查是否有返回的行,则只需将数组本身用作布尔值。例如$sql = "CALL pr_cartItemsForCustomer (:customerId)";
$statement = $connection->prepare($sql);
$statement->bindValue(':customerId',$customerId);
$statement->execute();
$results = $statement->fetchAll();
echo count($results);
更多信息,请访问if($results)
https://phpdelusions.net/pdo#count