【问题标题】:Update multiple rows using PHP SQLBuilder使用 PHP SQLBuilder 更新多行
【发布时间】:2013-03-07 00:04:46
【问题描述】:

我需要编辑一些不是我编写的 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 编写查询。任何帮助将不胜感激!

【问题讨论】:

    标签: php sql google-fusion-tables sqlbuilder


    【解决方案1】:

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

    用于此的 SQL 将是:

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

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

    【讨论】:

    • 啊,看来它是 Fusion Tables 的辅助类。你有没有机会在语法上帮助我?作为一种表达我想要的方式(如果更改了 SUBURB,则更新 SITE_ID 等于更改行的 SITE_ID 的所有记录)......我想不出该怎么做。
    • 您如何识别您最初希望更改其 SUBURB 值的特定记录?
    • 显示了一个表格,当你更新一条记录时,'Version'字段会自动更新为“Update”(和上面完全一样,除了if语句读取if($table_row[12]=="Update"),所以这个当我想更改我相信的郊区时会是一样的(我的意思是,一旦您更改 SUBURB 值,版本将更改为“更新”以更新该特定记录。
    猜你喜欢
    • 2013-10-01
    • 2017-06-22
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多