首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >准备好的语句+ MySQL (7天统计)

准备好的语句+ MySQL (7天统计)
EN

Stack Overflow用户
提问于 2013-07-18 06:11:50
回答 2查看 79关注 0票数 0

我目前正在做一个项目,在这个项目中,我需要为用户创建的每个单独的对象存储7天的数据,每个对象都有唯一的id以及用户。我猜这更像是一个“我该如何着手做这件事?”与“我做错了什么?”我的目标是一次保存7天的统计数据,并能够根据object_id将它们打印到jqPlot或其他图形库中。

我目前抓取数据的代码并不是很长。我刚开始使用预准备语句,并不完全理解从查询中获取结果的方法。

代码语言:javascript
复制
$stmt = $mysql->prepare("SELECT `date`, `impressions`, `clicks`, `object_id` FROM `object_stats` WHERE `user_id` = ?") or die(mysql_error());
$stmt->bind_param("s", $_SESSION['user_id']);
$stmt->execute();
$stmt->bind_result($date, $impressions, $clicks, $object_id);
$stmt->close();

从那时起,我打算把结果放到一个多维数组中,每个object_id都有一个数组,但我甚至不知道从哪里开始,我试着在谷歌上搜索类似的解决方案,但我没有找到任何东西。如果我没有完全沟通我的问题,我很抱歉,我很难用语言表达出来。感谢您的帮助,谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-18 06:17:56

尝试使用PDO,它有一些非常酷的特性,比如只需一次简单的fetch就可以将数据提取到多维数组中;这可能就是您正在寻找的。

查看本教程:

http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

今天我感觉很好,我将为您提供一些示例代码:

代码语言:javascript
复制
$sth = $dbh->prepare('SELECT `object_id`, `date`, `impressions`, `clicks`  FROM `object_stats` WHERE `user_id` = ?');
$sth->execute(array($_SESSION['user_id']));

$data = $sth->fetchAll(PDO::FETCH_COLUMN | PDO::FETCH_GROUP);
票数 1
EN

Stack Overflow用户

发布于 2013-07-18 06:22:10

你可以试试像这样的-

代码语言:javascript
复制
$object_id_array = array();
while ($stmt->fetch()) {
    $object_id_array[$object_id][] = array('date'=> $date, 
                                           'impressions'=>$impressions,
                                           'clicks'=>$clicks);
}

这将在$stmt->bind_result(...)之后,但在$stmt->close();之前。

请注意,$stmt = $mysql->prepare(...)末尾的or die(mysql_error());不能在您的mysqli OO上工作。看看http://www.php.net/manual/en/mysqli-stmt.error.php,看看如何获取错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17711174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档