PHP数组没有像我预期的那样保存值

时间:2015-02-12 01:04:01

标签: php mysql arrays save

今天我在PHP中重新编写了一个旧程序,我使用数组来更好地组织它。 编码之后,当我测试它时,我意识到数组并没有像我预期的那样保存数值。 (我是PHP的新手)

以下是我定义数组的方法:

/* Mysql settings */
$mysql = array();

$mysql['track'] = array();
$mysql['track']['visitors'] = array();
$mysql['track']['visitors']['query'] = "SELECT `uid`, `referer` FROM `track` WHERE (`time` >= '".$time['request']['start']."' AND `time` < '".$time['request']['end']."') GROUP BY `uid`";

我使用var_dum来查看保存的值如何并发出mysql请求:

var_dump($mysql['track']);
...
mysql_query($mysql['track']['visitors']['query']);

这是输出:

array(1) {
  ["query"]=>
  string(71) "SELECT `request` FROM `track` WHERE (`time` >= '' AND `time` < '86400')"
}
Query was empty

有人能告诉我为什么会这样吗? 我以错误的方式使用数组? 我应该如何将它们用于此目的?

2 个答案:

答案 0 :(得分:0)

您的查询根据var转储存储在[&#39; query&#39;]数组中,但您的mysql_query正在使用[&#34; track&#34;]。尝试将您的查询切换为[&#39;查询&#39;]数组。

另外请开始使用mysqli而不是mysql,因为后者已被弃用。这是旧代码,如你所说,所以我不确定你是否知道,但我想我至少会这么说。

答案 1 :(得分:0)

问题解决了!我错过了看到我在代码后面使用相同的数组$ mysql [&#39; track&#39;],它正在删除其中的值! 对于无知感到抱歉,我确实从中学到了一些东西。