我正在创建一个网站,通过Facebook FQL查询从Facebook获取事件和所有其他与事件相关的数据。一切都工作正常,直到我想将所有查询的信息都提供给我的数据库。有些事件记录在数据库中,有些则不记录。
这是一个示例页面,其中我放置了两个也将在页面上回显的FQL查询(这意味着查询成功)并且它们也将被插入到数据库中,但只记录其中一个。记录了一个名为HETK的地方,但Muusika Lounge却没有。 Here's an example page.
我的第二个问题是记录的事件不是从今天的日期开始录制的。从明天开始,一切都开始录制。 (这可以在图片上看到)
代码getTallinn1.php
:
$today = date("Y-m-d");
$now= $today ;
$Muusikalounge = array(
'method' => 'fql.query',
'query' => "SELECT name, start_time,description, location,attending_count,venue,pic_cover,eid
FROM event WHERE eid IN ( SELECT eid FROM event_member WHERE uid = 450415438376448 AND start_time >= '$now' )
ORDER BY start_time asc LIMIT 0, 3",);
$Result = $facebook->api($Muusikalounge);
foreach ( $Result as $rows ) {
mysqli_query( $con, "REPLACE INTO tallinn (name, start_time, description, location, attending_count, venue, pic_cover, eid) VALUES ( '".$rows['name']."', '".$rows['start_time']."', '".$rows['description']."', '".$rows['location']."', '".$rows['attending_count']."', '".$rows['venue']."', '".$rows ['pic_cover']['source']."', '".$rows['eid']."' )" );
}
$hetk = array(
'method' => 'fql.query',
'query' => "SELECT name, start_time,description, location,attending_count,venue,pic_cover,eid
FROM event WHERE eid IN ( SELECT eid FROM event_member WHERE uid = 282875915182473 AND start_time >= '$now' )
ORDER BY start_time asc LIMIT 0, 3",);
$Result1 = $facebook->api($hetk);
foreach ( $Result1 as $rows1 ) {
mysqli_query( $con, "REPLACE INTO tallinn (name, start_time, description, location, attending_count, venue, pic_cover, eid) VALUES ( '".$rows1['name']."', '".$rows1['start_time']."', '".$rows1['description']."', '".$rows1['location']."', '".$rows1['attending_count']."', '".$rows1['venue']."', '".$rows1 ['pic_cover']['source']."', '".$rows1['eid']."' )" );
}
这是PHPMyAdmin中记录的数据:
database http://t2na.ee/database.jpg
查询完全相同。我不知道这里可能是什么原因。
更新
我发现了这个问题的线索。 离开说明插入数据库可以解决问题。现在一切都按预期工作。但我无法弄清楚导致此冲突的一些事件描述字符串之间的区别。从事件中获取的描述字符串仅在长度上有所不同,但长度似乎也不是问题。我将描述类型更改为LongText,仍然是同样的问题。
答案 0 :(得分:0)
对于日期问题,请使用FQL now()
函数而不是您自己的日期字符串。如果没有指定时区,Facebook会假定时区为America/Los_Angeles
,因此您的$now
可能会被FQL解释为明天。
对于未写入的数据,如果您为mysqli_query
注释$hetk
会怎样?我想知道这两个查询是否以某种方式在数据库中相互覆盖。
最后,随着FQL日落,你应该使用纯Graph API编写新的Facebook API调用。