Php 无法将fql查询数据获取到我的数据库
我正在创建一个网站,通过Facebook FQL查询从Facebook获取事件和所有其他事件相关数据。在我想把所有查询到的信息都存入数据库之前,一切都很顺利。有些事件记录到数据库中,有些则没有 这里是一个示例页面,我在页面上放置了两个FQL查询,它们也将在页面上进行回显(这意味着查询成功),并且它们也将被插入到数据库中,但只记录其中一个。记录了一个叫HETK的地方,但Muusika休息室没有 我的第二个问题是,记录的事件不是从今天开始记录的。一切都从明天开始录制。(这可以在图片上看到) 代码Php 无法将fql查询数据获取到我的数据库,php,mysql,database,facebook,facebook-fql,Php,Mysql,Database,Facebook,Facebook Fql,我正在创建一个网站,通过Facebook FQL查询从Facebook获取事件和所有其他事件相关数据。在我想把所有查询到的信息都存入数据库之前,一切都很顺利。有些事件记录到数据库中,有些则没有 这里是一个示例页面,我在页面上放置了两个FQL查询,它们也将在页面上进行回显(这意味着查询成功),并且它们也将被插入到数据库中,但只记录其中一个。记录了一个叫HETK的地方,但Muusika休息室没有 我的第二个问题是,记录的事件不是从今天开始记录的。一切都从明天开始录制。(这可以在图片上看到) 代码ge
gettallin1.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中记录的数据:
这些查询是相同的。我不知道这里的原因是什么
更新
我找到了这个问题的线索。
省略对数据库的说明插入可以修复此问题。现在一切正常。但我无法找出导致此冲突的一些事件描述字符串之间的区别。从事件中获取的描述字符串仅在长度上有所不同,但这里的长度似乎也不是问题。我将描述类型更改为LongText,仍然存在相同的问题。对于日期问题,请使用FQL
now()
函数代替您自己的日期字符串。Facebook假设时区为美国/洛杉矶
,如果没有指定,那么FQL可能会将您的$now
解释为明天
对于未写入的数据,如果注释掉$hetk
的mysqli_查询
,会发生什么情况?我想知道这两个查询是否以某种方式在数据库中相互覆盖
最后,随着FQL的逐渐衰落,您应该使用纯图形API编写新的Facebook API调用。我尝试了now()函数,但结果仍然相同。这也没有意义,因为在页面上,它也呼应了今天的事件。我还尝试为$hetk注释mysqli_查询,但数据库中没有任何记录。但是FQL会永远关闭吗?Graph API没有FQL那么多的优势,他们不能直接关闭它,对吗?嗯。那么你的mysqli查询就有问题了。Facebook可以而且已经关闭了很多东西。自f8以来,Facebook至少承诺对其友好,而不是像过去那样“消失”一个端点。官方通知如下:查询错误可能是不匹配的报价问题。由于您的查询是一个双引号字符串,因此您可以将以下变量用作
值({$rows['name']},{$rows['start_time']},…
。更好的做法是我尝试使用卷曲语法值({$rows['name']},{$rows['start_time']})“,…
,仍然是相同的问题,一个进入数据库,另一个没有。您忽略了正确转义/处理放入查询中的数据。请阅读SQL注入主题。