我的情况如下: 我有一个MySQL数据库,我导出并插入Fusion Table。现在我需要修改php页面来查询Fusion Table中的数据,而不是localhost db。
我已经阅读了有关从开发人员指南中查询Fusion-Tables的内容,但它指的是GData Java库和SQL API。在另一个站点上,我看到有其他库可以用于查询,包括PHP依赖的Zend框架,这在我的案例中是相关的。但是,我没有偶然发现任何样本或教程,它只是简单地显示了一个关于如何查询简单单元格,行或列的php页面,我可以从中修改和改进编码以将其应用于设计。
我的问题是:
我是否需要在托管空间安装/上传某个库?
有没有php样本&查询Fusion Table数据的教程,我可能错过了?
任何人都可以告诉我如何查询ID为5的行的纬度信息吗? (使用路径检索页面:articles.php?lang = en& pg = comm_en& m = view& commID = 88
下面是我在comm_en.php页面中的编码,它从PHP查询数据到SQL。
提前谢谢!
Drini
<?php
session_start();
foreach ($_REQUEST as $key => $value){
$$key=addslashes(htmlspecialchars(strip_tags($value)));
}
if(isset($_GET["m"])) {$m=$_GET["m"];} else {$m="";}
if(isset($_GET["commID"])) {$commID=$_GET["commID"];} else {$commID=1;}
if(isset($_GET["lang"])) {$lang=$_GET["lang"];}
else {$lang="en";}
Shfaq($m,$commID);
function Shfaq($metod,$commID)
{
switch($metod)
{
case "view":
{View($commID);}
break;
case "default":
{View($artID);}
break;
}
} // end of Shfaq();
function View($commID)
{
$link =mysql_connect("localhost", "db-user", "db-pass") or die ("E pamundur lidhja!");
mysql_select_db("DataBase-name") or die (mysql_error());
$queryComm = "SELECT * FROM communities WHERE id ='$commID' LIMIT 0,1";
$commRes=mysql_query($queryComm) or die(mysql_error());
$comm=mysql_fetch_array($commRes);
$healthPerc = round(($comm["healthBooklet"]/$comm["totalChildNo"]), 3)*100 ;
echo ' <table class="gpsbox" align="right">
<caption>GPS Location</caption>
<tr><td>Latitude </td><td>'.$comm["latitude"].'</td></tr>
<tr><td>Longitude</td><td>'.$comm["longitude"].'</td></tr>
</table>....<html coding continues>
答案 0 :(得分:3)
以下是如何将newest PHP API client library与Fusion Tables一起使用:
use Google_Service_Fusiontables;
$client_email = '<id>@developer.gserviceaccount.com';
$private_key = file_get_contents('<private key>.p12');
$scopes= array(
'https://www.googleapis.com/auth/fusiontables',
'https://www.googleapis.com/auth/fusiontables.readonly',
);
$credentials = new Google_Auth_AssertionCredentials(
$client_email,
$scopes,
$private_key
);
$client = new Google_Client();
$client->setAssertionCredentials($credentials);
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion();
}
$service = new Google_Service_Fusiontables($client);
$result = $service->query->sql('SELECT <column> FROM <table id>');
var_dump($result);
答案 1 :(得分:0)
有一个PHP client library,您可以根据需要使用它(它可能是从PHP访问Fusion Tables的最简单方法)
客户端库旁边还有PHP sample code,看看它可能会帮助您理解这个概念。
使用库时,可以简单地编写sql语句,例如
select latitude from 123456 where id = 5;
123456
指的是您的融合表的表ID。如果您的表格是公开的,您甚至不必关心身份验证,但如果您想访问私人表格或更新/插入数据,我建议您使用OAuth for authentication。
一般的示例代码可以在Google Fusion Tables API Sample Code
上找到