我需要知道是否有机会从MySQL PDO查询中获取PHP5数组:
Array = (
keywordID = 1321,
keyword = "Its a test",
position = Array(
today = 12,
month = 17
)
)
现在我有了这个MySQL查询:
$sql = "SELECT
keywords.id AS keywordID,
keywords.keyword,
statistic.position
FROM
keywords
LEFT JOIN statistic ON (statistic.kid = keywords.id)
WHERE
keywords.uid = ? AND statistic.date IN (?, ?)";
$stmt = WPStatsDB::getInstance()->prepare($sql);
$stmt->execute(array($array['userID'], date("d.m.Y", time()), date("d.m.Y", strtotime('-30 days'))));
$result = $stmt->fetchAll();
这是var_dump($ result)的当前结果:
这是其中一项结果。我试着在我的帖子中写下来。
array(244) {
...
[1]=>
array(6) {
["keywordID"]=>
string(4) "1978"
[0]=>
string(4) "1978"
["keyword"]=>
string(20) "Weiterbildung in NRW"
[1]=>
string(20) "Weiterbildung in NRW"
["position"]=>
string(2) "38"
[2]=>
string(2) "38"
}
...
}
我需要将属性position作为数组,其中两个值不是int,只有一个值。我需要将位置作为数组,使用两个属性来减少数据库查询。 今天和月是具有今天位置和今天一个月前的位置信息的值。
抱歉,我忘了说我无法编辑此表。表统计信息包含连接到每个域的每个关键字的每天统计信息。它非常大。
我真的不知道如何解决这个问题。
感谢您的帮助!! : - )
答案 0 :(得分:0)
是的,你可以。使用任何ORM,list of examples
答案 1 :(得分:0)
有争议的是,在很多情况下,对关系进行单独查询的速度更快。
你要么
1)获得每个职位的一行,并在得到结果后处理它
2)为每个关键字转到一个循环,并在每个关键字的单独查询中获取位置
3)您在MySQL中按关键字ID执行分组,并使用group_concat之类的内容检索位置。然后你可以解析它。这似乎更快,但可能取决于您的数据集,可能不如您预期的那样好。