我是新手,我在这里看到了许多不同的帖子,以及谷歌上发现的很多其他资源,但我仍在努力使用数组。
在我的HTML中,我基本上试图在我的数据库中显示一列美元金额的总和。
这是我的HTML / PHP:
<div class="col-sm-2">
<h1><?php get_sum_income(); ?></h1>
</div>
这是我的外部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;
};
我不断收到“数组到字符串转换”错误,我知道它与我对数组的理解(或缺少数组)有关。我环顾四周,我只是需要帮助解决我的具体情况。
另外,我是如何以最佳方式访问该功能的?
答案 0 :(得分:5)
你不能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'];
(我也改进了变量名称!)
答案 1 :(得分:1)