为什么我不能在PHP中"打印"一个数组?

 掩不住的心 发布于 2023-02-13 15:28

我是新手,我在这里看了很多不同的帖子,以及谷歌上发现的很多其他资源,但我仍在努力使用数组.

在我的HTML中,我基本上试图在我的数据库中显示一列美元金额的总和.

这是我的HTML/PHP:

 

这是我的外部PHP文件,它调用的函数:

function get_sum_income() {
require(ROOT_PATH . "inc/database.php");

try {
    $results = $db->prepare("SELECT SUM(cat_amount) FROM categories WHERE is_income = '1';");
    $results->execute();
} catch (Exception $e) {
    echo ("ERROR: Data could not be retrieved from the database." . $e);
    exit;
}
$sum_income = $results->fetch(PDO::FETCH_ASSOC);
print $sum_income;

};

我不断收到"数组到字符串转换"错误,我知道它与我对数组的理解(或缺少数组)有关.我环顾四周,我只是需要帮助解决我的具体情况.

另外,我是如何以最佳方式访问该功能的?

1 个回答
  • 你不能print一个数组.print是为了标量.PHP正在尝试将您的数组转换为字符串,以便它可以print,但即使它自己的尝试失败,因为它根本不受支持.

    不过你可以print_r!


    更新听起来您想要自己检索作为数据库查询结果的数组的单个元素.它位于一个数组中,因为PHP不会提前知道结果集中只有一列.

    在你的情况下,你写道:

    print $sum_income['SUM(cat_amount)'];
    

    不过,这非常笨拙.您可以通过在MySQL查询中为列提供别名来缩短它:

    SELECT SUM(`cat_amount`) AS `mySum` FROM `categories` WHERE `is_income` = '1';
    

    然后:

    $row = $results->fetch(PDO::FETCH_ASSOC);
    print $row['mySum'];
    

    (我也改进了变量名!)

    2023-02-13 15:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有