使用PHP SQLBuilder更新多行

时间:2013-03-07 00:04:46

标签: php sql google-fusion-tables sqlbuilder

我需要编辑一些不是由我编写的PHP,我已经完成了大部分工作,但有一点我无法弄清楚正确的语法。

基本上我们从Google Fusion Table中获取数据并使用它填充表格,一旦我们编辑了表格中的数据,我们就可以将该信息更新为同一个表格的生产版本。其中一个更新查询如下所示:

if($table_row[12]=="New"){
  $tableid1 = '1bsSleKDBdkhQZfn-oADx0tUtoOc32RqIyiX05Bo';
 $insertresults = $ftclient->query(SQLBuilder::insert($tableid1, 
    array('SUBURB'=> $table_row[1],
    'ROAD_NAME' => $table_row[2],
    'DESCRIPTION' => $table_row[3],
    'DIRECTION' => $table_row[4],
    'STATUS' => $table_row[5],
    'SITE_ID' => $table_row[6],
    'COMMON_NAME' => $table_row[7],
    'Lat' => $table_row[8],
    'Long' => $table_row[9],
        'OPERATING_DAY' => $table_row[10],
    'OPERATING_HOURS' => $table_row[11],
    'Version' => "current")));
  $insertresults = explode("\n", $insertresults);
  $rowid1 = $insertresults[1];
     $updateresults = $ftclient->query(SQLBuilder::update($tableid, 
    array('SUBURB'=> $table_row[1],
    'ROAD_NAME' => $table_row[2],
    'DESCRIPTION' => $table_row[3],
    'DIRECTION' => $table_row[4],
    'STATUS' => $table_row[5],
    'SITE_ID' => $table_row[6],
    'COMMON_NAME' => $table_row[7],
    'Lat' => $table_row[8],
    'Long' => $table_row[9],
        'OPERATING_DAY' => $table_row[10],
    'OPERATING_HOURS' => $table_row[11],
    'Version' => "current",
    'Edited_By' => $table_row[13],
    'Date_Edited' => $table_row[14]),$table_row[0]));
  $updateresults = explode("\n", $updateresults);
  $rowid2 = $updateresults[1]; 
  }

我需要做的是编写一个类似类型的SQLBuilder查询,当其中一个更改SUBURB时,它会更新具有相同SITE_ID的每条记录(即,如果记录有SUBURB Sydney,SITE_ID 1,每条记录都带有SITE_ID如果一个记录的SUBURB值从悉尼更改为墨尔本,则必须更改1)。不确定如何在语法上如何短语或如何使用SQLBuilder编写查询。任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:0)

SQLBuilder显然是本地包含的类。您需要查看其文档或更新方法本身,以了解它期望如何编码where子句。

这个的SQL将是:

"UPDATE tableid SET SUBURB = '{$table_row[1]}' WHERE SITE_ID = '{$table_row[6]}'"

如果你能够运行纯SQL那么就可以了。否则我需要看到类库。