【问题标题】:How to detect a syntax error in PHP? [duplicate]如何检测 PHP 中的语法错误? [复制]
【发布时间】:2015-02-07 06:18:02
【问题描述】:

我遇到了一个名为

的 PHP 语法错误

解析错误:语法错误,意外的 '' (T_ENCAPSED_AND_WHITESPACE),在第 189 行的 C:\xampp\htdocs\playit2\rental_list.php 中需要标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING)

第189行是

$jsql_ae3 = mysql_query("select products.formats from products where products.id='$jrowa2['id']'") or die(mysql_error());

【问题讨论】:

  • 你试过把where products.id='$jrowa2['id']'"改成where products.id='{$jrowa2['id']}'"

标签: php syntax-error php-parse-error


【解决方案1】:

使用数组和函数,需要放花括号:

$jsql_ae3 = mysql_query("select products.formats from products where products.id='{$jrowa2['id']}'") or die(mysql_error());

【讨论】:

  • 你也可以使用$jrowa2[id],尽管花括号可以减少歧义。
【解决方案2】:

当你使用这样的数组时

$jrowa2['id']

在带有双引号的字符串中,PHP 进行插值并尝试解释它,但是,在这种情况下,您不能在键周围使用简单引号,您只需编写键(因为它已经在字符串),然后,您只需使用

$jrowa2[id]

【讨论】:

    【解决方案3】:

    使用带有语法高亮的 PHP IDE,例如 NetBeans 或 PHPStorm。

    在这种特殊情况下,您可以在单引号和数组访问之间插入一对括号来修复此行:

    $jsql_ae3 = mysql_query("select products.formats from products where products.id='{$jrowa2['id']}'") or die(mysql_error());
    

    【讨论】:

    • 它不需要是 IDE。一个带有语法高亮的源代码编辑器就足够了,比如 Notepad++。至少对我来说已经足够了。
    【解决方案4】:

    应该是——

    "select products.formats from products where products.id='$jrowa2[id]'"
    

    【讨论】:

      【解决方案5】:

      用这个改变

      $jsql_ae3 = mysql_query("select products.formats from products where products.id='$jrowa2[id]'") or die(mysql_error());
      

      【讨论】:

        【解决方案6】:

        php_check_syntax 应该为您完成这项工作。但是,这仅适用于您运行 PHP >= 5.05 的情况。 cmets部分的第一条评论会告诉你如何实现。

        【讨论】:

          【解决方案7】:
          $jsql_ae3 = mysql_query("select products.formats from products where products.id='".$jrowa2['id']."'") or die(mysql_error());
          

          【讨论】:

          • 为了其他读者的利益,请提供更多信息!
          【解决方案8】:

          试试这个。

           $jsql_ae3 = mysql_query("select products.formats from products where products.id="$jrowa2['id']"") or die(mysql_error());
          

          希望这会有所帮助。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-28
            • 1970-01-01
            • 2012-07-22
            • 2012-08-11
            • 2012-03-02
            相关资源
            最近更新 更多