为什么我会收到此错误?
语法错误[第3:63行'选择'时缺少EOF]
代码:
$twitterUrl ="https://query.yahooapis.com/v1/public/yql?q=";
$twitterUrl .= urlencode("select * from twitter.oauth.accesstoken where oauth_verifier=@verifier
and oauth_consumer_key=@consumer_key and oauth_consumer_secret=@consumer_secret
and oauth_token=@token and oauth_token_secret=@token_secret;");
$twitterUrl .= urlencode("select * from twitter.status.timeline.user where id='jzm'");
$twitterUrl .="&format=json";
$twitterUrl .="&env=http://datatables.org/alltables.env";
$twitterFeed = file_get_contents($twitterUrl, true);
$twitterFeed = json_decode($twitterFeed);
答案 0 :(得分:1)
您的查询将两个select语句放在一起,用分号分隔,如:
select * from twitter.oauth.accesstoken where oauth_verifier=@verifier
and oauth_consumer_key=@consumer_key and oauth_consumer_secret=@consumer_secret
and oauth_token=@token and oauth_token_secret=@token_secret;select * from twitter.status.timeline.user where id='jzm'"
YQL只允许使用select语句,所以它抱怨第二个。 (在这方面,它与MySQL不同。)
您可以重新排序参数,使其成为一个(有效)选择语句,如下所示:
select * from twitter.status.timeline.user where
id="jzm" and
oauth_token="oauth_token" and
oauth_token_secret="oauth_token_secret" and
oauth_consumer_key="oauth_consumer_key" and
oauth_consumer_secret="oauth_consumer_secret"
请注意,您仍然需要通过Twitter从OAuth流中获取oauth_token
和oauth_token_secret
。 YQL的优势在于它可以为您执行请求签名,从而无需使用第三方OAuth或Twitter / OAuth库。