【问题标题】:Parse error: syntax error, unexpected $end [duplicate]解析错误:语法错误,意外 $end [重复]
【发布时间】:2015-04-08 08:52:29
【问题描述】:

从我的数据库创建输出时,我不断收到错误消息。

ERROR MESSAGE: "Parse error: syntax error, unexpected $end in XXXXXXXXX.php on line 26."

下面使用的代码。

<?php
    require('connectDB.php');

    if ($connection) {
      echo "Connected to database!";
    } else {
          die("Connection failed: " . mysqli_connect_error());

    $query = "SELECT title, description, body, created FROM diary_post";
    $result = mysql_query($query);

    $retval = mysql_query( $query, $connection );
    if(! $retval )
    {
      die('Could not get data: ' . mysql_error());
    }
    while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
    {
        echo "title :{$row['title']}  <br> ".
             "description : {$row['description']} <br> ".
             "body : {$row['body']} <br> ".
             "created : {$row['created']} <br> ".
             "--------------------------------<br>";
    } 
    echo "Fetched data successfully\n";
    mysql_close($conn);
    ?> 

有人对为什么这不起作用有任何建议吗?谢谢。

【问题讨论】:

  • XXXXXXXXX.php xxxxxx 是哪个文件?因为这段代码中没有$end!所以错误不在你展示给我们的代码中!
  • 您在 mysqli 连接错误语句后缺少 }

标签: php sql syntax-error database-connection parse-error


【解决方案1】:

您的 else 子句缺少右大括号:

<?php
require('connectDB.php');

if ($connection) {
  echo "Connected to database!";
} else {
      die("Connection failed: " . mysqli_connect_error());
} // This should be here
$query = "SELECT title, description, body, created FROM diary_post";
//$result = mysql_query($query);

$retval = mysql_query( $query, $connection );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo "title :{$row['title']}  <br> ".
         "description : {$row['description']} <br> ".
         "body : {$row['body']} <br> ".
         "created : {$row['created']} <br> ".
         "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?> 

建议:使用带有括号匹配和适当语法高亮的良好IDE,这样的错误会很明显。

编辑:正如@Rizier123 在 cmets 中建议的那样,您不应该收到意外的变量$end 错误,请同时向我们展示connectDB.php 的内容,可能还有更多毕竟这个。

【讨论】:

  • 仍然没有解释为什么 OP 得到:unexpected $end。我只是猜测错误出现在connectDB.php 中,OP 没有在这里向我们展示,他从来没有在这里到达这条线
  • 它确实 - PHP 完成了对文件的分析,它在不应该的时候完成了end-ed,因为语句没有以右括号终止。我同意将美元符号放在它前面并不是最有用的提示,但这是 PHP 的职业危害之一 :)
  • 顺便说一句。 mysql_close($conn);不应该是 mysql_close($connection); ?
  • PHP 不只是在错误消息中添加美元符号!这是因为错误出现在 OP 具​​有变量 $end 的其他地方,由于语法错误,这是意外的!
  • 嗨 Kaloyan,感谢您发现这一点!没注意就觉得很傻!谢谢你的建议!
猜你喜欢
  • 2012-08-15
  • 2014-08-08
  • 2015-08-20
  • 1970-01-01
  • 2018-06-28
  • 2016-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多