我目前正在开展一个项目,在这个项目中,我需要为用户创建的每个单独对象存储7天的数据,每个对象都有唯一的ID以及用户。我想这更像是“我该怎么做呢?”与“我做错了什么?”我的目标 是一次保留7天的统计数据,并能够根据他们的object_id将它们打印到jqPlot或其他图形库中。
我目前获取数据的代码并不太远。我刚刚开始使用预处理语句,我还没有完全理解从查询中获取结果的方法。
$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创建一个数组,但我不知道从哪里开始,我尝试使用谷歌搜索类似的解决方案,但我没有遇到任何东西。如果我没有完全传达我的问题,我很抱歉,我很难说出来。感谢任何帮助。谢谢。
答案 0 :(得分:1)
尝试使用PDO
,它有一些非常酷的功能,例如只需简单的提取就可以将数据提取到多维数组中;这可能就是你要找的东西。
查看本教程:
http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/
我今天很开心,并会为您提供一些示例代码:
$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 :(得分:1)
$object_id_array = array();
while ($stmt->fetch()) {
$object_id_array[$object_id][] = array('date'=> $date,
'impressions'=>$impressions,
'clicks'=>$clicks);
}
这将在$stmt->bind_result(...)
之后,但在$stmt->close();
之前。
请注意,or die(mysql_error());
末尾的$stmt = $mysql->prepare(...)
不会对您的mysqli
OO有效。请查看http://www.php.net/manual/en/mysqli-stmt.error.php,了解如何获取错误。