php - 解析错误 : syntax error, 意外的 T_STRING in . . . .在第 17 行

标签 php mysql

<分区>

我正在尝试创建一个将放入 foreach 语句中的字符串。该字符串将确定哪些字段将出现在数据库中。由于我无法提前确定将从表单中选择哪些字段,因此我认为这将是处理未知数并显示查询结果的最佳方式。

我以同样的方式构建了查询,并且成功了。我试过双引号和单引号,但我只是不明白为什么它不想构建这个字符串。请帮助(如果这是一个愚蠢的问题,请原谅,因为我是 PHP 的新手 - 我可以找到与类似搜索匹配的答案)。谢谢你! :-)

<?php
  include('database.php');


  function show_products($table, $productIDcb, $categoryIDcb, $productCodecb, $productNamecb, $listPricecb)
  {
        $list = "";
        global $db;
        $theQuery = 'select ';
        if($productIDcb == "")
         {
                $theQuery == $theQuery;
         }
        else
         {
                $theQuery .= 'productID, ';
                $list .=' $products['productID']';  //THIS IS LINE 17
         }
        if($categoryIDcb == "")
         {
                $theQuery == $theQuery;
         }
        else
         {
                $theQuery .= 'categoryID, ';
                $list .=' $products['categoryID']';

         }
        if($productCodecb == "")
         {
                $theQuery == $theQuery;
         }
        else
         {
                $theQuery .= 'productCode, ';
                $list .=' $products['productCode']';

         }
        if(isset($_POST['productNamecb']))
         {
                $theQuery == $theQuery;
         }
        else
         {
                 $theQuery .= 'productName, ';
                 $list .=' $products['productName']';
         }
        if(isset($_POST['listPricecb']))
         {
                $theQuery .= 'listPrice, ';
         }
        else
         {
                $theQuery .= 'listPrice, ';
                $list .=' $products['listPrice']';
         }

        $theQuery .=' "" from ' .$table;
        echo($theQuery);
        $rSet = $db -> query($theQuery);
        foreach($rSet AS $products)
          {
              $list .= "<br>";
          }
        echo($list);
  }



?>

最佳答案

你用了两次单引号

$list .=' $products['productID']';

尝试对字符串使用不同的引号:例如,

$list .="$products['productID']";//这将生成一个如下所示的字符串

$products['productID']

当编译器在字符串的开头遇到引号 ' 时,它希望另一个引号将其关闭。在您的原始代码中,第二个引号过早出现,使您的字符串变为

' $products['

这使得编译器无法理解下一部分

productID']'

另外,如果你想在字符串中包含一个变量,你需要双引号 ",而不是单引号 '

最后,您不能像那样在带引号的字符串中直接访问数组。尝试连接:

$list .=' ' . $products['productID'];

*编辑

关于@marcelkorpel 的建议的注释。您可以使用花括号,但注释中有轻微的拼写错误。请使用

“{$products['productID']}” 而不是 “${products['productID']}”

关于php - 解析错误 : syntax error, 意外的 T_STRING in . . . .在第 17 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20165804/

相关文章:

mysql - sql : finding how many objects were stolen by a player?

javascript - 未找到 Sequelize 列中的错误

php - 产品搜索 php mysql

带组连接的 MySQL 动态数据透视表

php - 在 GET ajax 调用中传递 HEX 颜色

php - C++ OOP 和 PHP OOP 之间的差异

php - 连接三个表 mysql php,但没有回显

php - jQuery 和 php 注册脚本不起作用

php - DQL 关联和 lat lon 距离

php - 使用正则表达式解析嵌套的 IF 语句