无法回显查询结果

时间:2013-08-02 19:39:42

标签: php sql class function pdo

我有一个,其中我有一个功能,其中包含以下查询

public function count_weight() {
    $id = $_SESSION['id'];
    $query = $this->db->prepare("SELECT sum( weight ) FROM `fish` WHERE `user_id` = '".$_SESSION['id']."'");

    try {
        $query->execute();
    } catch(PDOException $e) {
        die($e->getMessage());
    }

    return $query->fetchAll();
}

我想在我的索引页面上回显这个结果。现在它看起来像这样:

$ weight = $ users-> count_weight();

echo $ weight;

这显然不起作用,它只打印出“arraykg”。

有什么建议吗?

5 个答案:

答案 0 :(得分:2)

你不能打印那样的数组。 e.g。

$arr = array(1,2,3);
echo $arr;

将输出文字文本Array,因为您在字符串上下文中使用该数组。如果要打印数组的CONTENTS,则需要对其进行操作,例如

echo implode(',', $arr); // prints: 1,2,3

print_r($array); // debug dump out of the array

答案 1 :(得分:0)

试试这个例子:

$weight = $users->count_weight();
foreach($weight as $w)
{
   echo($w['id']):
}

答案 2 :(得分:0)

$query->fetchAll();将返回一个数组。使用var_dump()分析数组并相应地调整变量声明。

答案 3 :(得分:0)

echo "<pre>";
print_r($weight);
echo "</pre>";

假设$weight实际上包含数据且不是资源。

答案 4 :(得分:0)

$ weight是它检索的行的数组。您需要回显该列

echo $weight['weight'];

由于查询,这可能有效,也可能无效。尝试将查询更改为:

$query = $this->db->prepare("SELECT sum( weight ) AS weight FROM `fish` WHERE `user_id` = '".$_SESSION['id']."'");