使用php pdo调用存储过程到mysql数据库columnCount后不检查任何行

问题描述 投票:0回答:1
    $sql = "CALL pr_cartItemsForCustomer (:customerId)";        
    $statement = $connection->prepare($sql);    
    $statement->bindValue(':customerId',$customerId);
    $statement->execute();

    if($statement->columnCount() > 0)

即使没有返回任何行,这也总是返回5列,检查无行的正确方法是什么?我尝试了rowCount,但是没有用。

该代码对查询有效,但在调用返回查询的存储过程时无效。

php mysql pdo
1个回答
0
投票

找出返回的行数的正确方法是在返回的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
© www.soinside.com 2019 - 2024. All rights reserved.