我是新手,我在这里看了很多不同的帖子,以及谷歌上发现的很多其他资源,但我仍在努力使用数组.
在我的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;
};
我不断收到"数组到字符串转换"错误,我知道它与我对数组的理解(或缺少数组)有关.我环顾四周,我只是需要帮助解决我的具体情况.
另外,我是如何以最佳方式访问该功能的?
你不能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'];
(我也改进了变量名!)