【发布时间】:2013-08-04 04:46:42
【问题描述】:
我有一个 class,其中我有一个 function 和以下 query。
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();
回声 $weight;
这显然不起作用,它只打印出“arraykg”。
有什么建议吗?
【问题讨论】:
-
您需要使用
foreach迭代结果。或者由于您的查询看起来应该只返回一行和一列,而不是执行fetchAll执行fetchColumn -
为什么不使用带参数的预处理语句??
-
迈克 - 谢谢! fetchColumn 成功了。
-
@CheesePuffs 你真的应该为准备好的语句使用绑定参数,以防止适当的安全/SQL 注入。您还应该查看
stmt::bind_param和stmt::bind_result -
Daryl Gill - 感谢您的提示!我边走边学,愿意举个例子吗? :)
标签: php sql class function pdo