php - 如何通过php pdo中的foreach循环从myslq表中获取所有行
问题描述
我正在尝试从 mySql 数据库表中收集所有行。但是我比原来的行少了 1 行。假设表有 3 行,但我得到 2 行的数据。我总是想念第一个。这是我的桌子的图像。
这是我的代码:
$query = $db->query("SELECT * FROM `POS_refund`");
if($query->fetchColumn() > 0){
foreach($query as $row){
echo $get_prod_id = $row['prod_id'];
$get_prod_qnt = $row['qnt'];
}
}
错在哪里?
解决方案
PDOStatement::fetchColumn
从结果集的下一行返回单列
你应该使用fetch()
orfetchall()
在你的情况下
<?php
$query = $db->query("SELECT * FROM `POS_refund`")->fetchall();
foreach($query as $row){
echo $get_prod_id = $row['prod_id'];
$get_prod_qnt = $row['qnt'];
}
?>
如果您想查看是否有返回的记录,您可以使用count()
因为fetchall()
返回数组,那么只需计算您的数组元素
<?php
$query = $db->query("SELECT * FROM `POS_refund`");
$results = $query->fetchall();
if(count($results) > 0){
foreach($results as $row){
echo $get_prod_id = $row['prod_id'];
$get_prod_qnt = $row['qnt'];
}
}else{
echo "No results";
}
?>
推荐阅读
- django - 使用 django cache_page (InvalidCacheBackendError) 时 Celery 容器崩溃
- python - 了解与 slow_callback_duration 相关的 asyncio set_result 的行为
- reactjs - 提交表单时功能性反应组件未更新
- snowflake-cloud-data-platform - 雪花“瞬态”表显示 90 天的保留期
- javascript - 将 svg 显示为来自外部 url 的图像
- c++ - 使用 while 循环的 C++ 斐波那契数列生成器。我这里的逻辑有什么问题?
- python - 为什么子类化会改变 __init__ 签名?
- mips - MIPS lw指令的转换
- android - 我无法在 Google Play 控制台上重置敏感应用权限声明
- amazon-web-services - Terraform 调用 SSM 文档