从PHP查询Fusion-Table

时间:2012-04-10 17:15:01

标签: google-fusion-tables

我的情况如下: 我有一个MySQL数据库,我导出并插入Fusion Table。现在我需要修改php页面来查询Fusion Table中的数据,而不是localhost db。

我已经阅读了有关从开发人员指南中查询Fusion-Tables的内容,但它指的是GData Java库和SQL API。在另一个站点上,我看到有其他库可以用于查询,包括PHP依赖的Zend框架,这在我的案例中是相关的。但是,我没有偶然发现任何样本或教程,它只是简单地显示了一个关于如何查询简单单元格,行或列的php页面,我可以从中修改和改进编码以将其应用于设计。

我的问题是:

  1. 我是否需要在托管空间安装/上传某个库?

  2. 有没有php样本&查询Fusion Table数据的教程,我可能错过了?

  3. 任何人都可以告诉我如何查询ID为5的行的纬度信息吗? (使用路径检索页面:articles.php?lang = en& pg = comm_en& m = view& commID = 88

  4. 下面是我在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>
    

2 个答案:

答案 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)

  1. 有一个PHP client library,您可以根据需要使用它(它可能是从PHP访问Fusion Tables的最简单方法)

  2. 客户端库旁边还有PHP sample code,看看它可能会帮助您理解这个概念。

  3. 使用库时,可以简单地编写sql语句,例如

    select latitude from 123456 where id = 5;
    
  4. 123456指的是您的融合表的表ID。如果您的表格是公开的,您甚至不必关心身份验证,但如果您想访问私人表格或更新/插入数据,我建议您使用OAuth for authentication

    一般的示例代码可以在Google Fusion Tables API Sample Code

    上找到