【问题标题】:For-loop and variables in PHP MySQL QueryPHP MySQL Query 中的 For 循环和变量
【发布时间】:2013-07-02 11:34:45
【问题描述】:

我必须使用 PHP 和 MySQL 选择很多表和字段。但是它们的结构和命名每次都是一样的。

我有表格 field_revision_blabla 和表格别名 blablabla_table 中的字段 blablabla_value

for ($i=0; $i < sizeof($typeFields); $i++) {
    $query->join(
        "field_revision_".$typeFields[$i], 
        $typeFields[$i]."_table", 
        'n.nid = $typeFields[$i]."_table.entity_id"');
    $query->addField($typeFields[$i]."_table", $typeFields[$i]."_value");
}

但这给了我错误:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 '[$i]) 附近使用正确的语法。"_table.entity_id" INNER JOIN field_revision_field_text field_text_table O' 在第 2 行

我认为错误在

'n.nid = $typeFields[$i]."_table.entity_id"'

【问题讨论】:

    标签: php mysql variables for-loop


    【解决方案1】:

    SO 的颜色编码应该已经为您标记了这一点……以及抱怨查询中的变量的 SQL 语句。您的$typeFields[$i] 没有出现在字符串中。

    "n.nid = " . $typeFields[$i] . "_table.entity_id"
    

    【讨论】:

      【解决方案2】:

      使用双引号而不是单引号,我怀疑您在数据库中是否有包含n.nid = $typeFields[$i]."_table.entity_id" 的记录:

      for ($i=0; $i < sizeof($typeFields); $i++) {
          $query->join(
              "field_revision_".$typeFields[$i], 
              $typeFields[$i]."_table", 
              "n.nid = ".$typeFields[$i]."_table.entity_id");
          $query->addField($typeFields[$i]."_table", $typeFields[$i]."_value");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-12
        • 1970-01-01
        • 2013-09-22
        • 1970-01-01
        • 2014-11-09
        • 1970-01-01
        • 1970-01-01
        • 2010-11-13
        相关资源
        最近更新 更多