【发布时间】:2014-06-26 15:16:59
【问题描述】:
我在填充使用数据库中的值生成键的数组时遇到问题。数据库返回 2 行,第一行应该是键,第二行是该键的值。
这是我的代码:
$days = array();
if($query=db::query("select dayname(date_earned) as dayEarned, sum(downloads) as dayDownloaded
from perf_earnings
where date_earned between DATE_SUB(curdate(), INTERVAL 7 DAY) AND curdate()
group by dayEarned"))
{
while($row=$q->fetch_assoc()){
$day = $row["dayEarned"];
$dowSum = $row["dayDownloaded"];
$days[$day] = $dowSum;
}
}
我得到一个空数组。
我想得到的是:
array(
[Monday]=>230,
[Tuesday]=>500,
[Wednesday]=>340,
etc.
)
嗯,和往常一样,如果你不仔细阅读,就会出现一个愚蠢的错误。当我想做 fetch_assoc 时,我没有正确输入 $query。
我写的是“$q”而不是“$query”。
还是谢谢。
【问题讨论】:
-
先手动执行查询并检查
-
您是否费心检查您的查询是否真的成功了?您只需假设
$query将是一个结果句柄,并且可以通过 fetch_assoc 循环运行。查询成功的方式只有 一种,失败的方式几乎无限。永远不要假设成功,因为几率实际上是无穷大的 1。始终检查失败,并将成功视为惊喜。 -
我的查询正在运行,我在 mysql 工作台上试了一下。仅当它在 php 中不起作用时。如果它返回 false,我在 else 块中使用了 alert,但没有发生任何事情,所以我假设查询是好的。