试图为mysql编写PHP函数,请选择SUM()

试图为mysql编写PHP函数,请选择SUM(),php,mysql,Php,Mysql,我正在尝试编写一个PHP函数,它获取表中1列中的值之和。我的SQL语句工作得很好。但是,当我编写函数并尝试将变量回显到HTML代码中时,它返回“0” 以下是我的功能: function get_asset_value($org_ID) { global $db; $query = "SELECT SUM(asset_value) FROM assets WHERE org_ID = '$org_ID'"; $asset_sum = $db->query($query);

我正在尝试编写一个PHP函数,它获取表中1列中的值之和。我的SQL语句工作得很好。但是,当我编写函数并尝试将变量回显到HTML代码中时,它返回“0”

以下是我的功能:

function get_asset_value($org_ID) {
global $db;
$query = "SELECT SUM(asset_value) FROM assets
          WHERE org_ID = '$org_ID'";
$asset_sum = $db->query($query);
$asset_sum = $asset_sum->fetch();
return $asset_sum;
在我的HTML中,我有以下内容:

<?php echo $asset_sum; ?>

我不确定这是否与函数的“fetch”部分有关。我真的不知道fetch做什么,但我尝试从一个工作函数复制/修改这段代码(它不返回sum,但它是一个select语句)

谢谢大家!

SELECT SUM(asset_value) AS the_sum FROM assets WHERE ord_ID = '$ord_ID';

问题是,您返回的是整个记录,而不仅仅是所需的字段

另外,从您在查询中插入该ID的方式判断,我怀疑您对SQL注入持开放态度。你真的应该这样做。

除了

SELECT SUM(asset_value) AS the_sum FROM assets WHERE ord_ID = '$ord_ID';
...
return $asset_sum['the_sum']
布拉德

你最好这样做

$safer = mysql_real_escape_string($org_ID);
那就做,

SELECT SUM(asset_value) AS the_sum FROM assets WHERE ord_ID = '$safer';
...
return $asset_sum['the_sum']

您对SQL注入非常开放,也许您可以使用准备好的语句?谢谢,Brad。这完全奏效了。我真的很感谢你的帮助!
SELECT SUM(asset_value) AS the_sum FROM assets WHERE ord_ID = '$safer';
...
return $asset_sum['the_sum']