【问题标题】:Parse error: syntax error, unexpected $end on line 17 [closed]解析错误:语法错误,第 17 行的意外 $end [关闭]
【发布时间】:2014-06-01 15:51:23
【问题描述】:

当我在浏览器中查看我的 php 代码时出现此错误。 解析错误:语法错误,第 17 行出现意外 $end。

<?php
$host="host"; 
$username="username"; 
$password="password"; 
$db_name="db"; 
$tbl_name="users"; 
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM `users` WHERE `username` = '$_SESSION[username]' ";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result)){
if ( $row['perm'] == "admin" ) {
  echo "Admin<br />";
} else {
  echo "Welcome to my homepage!";
}
?>

【问题讨论】:

  • 最后缺少}
  • 在第17行的末尾还是代码的末尾?
  • 这个问题是由一个简单的印刷错误引起的。虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能帮助未来的读者。
  • 正确缩进你的代码,或者使用一个不错的 IDE 会发现这个问题的原因
  • @andrewcoder2014 如果你使用正确的缩进,你会看到它。

标签: php mysql sql


【解决方案1】:

您的 while 语句缺少结束大括号。您还应该使用 MySQLi 或 PDO 而不是旧的 mysql 函数。以下是即将推出的 PHP 版本支持的新函数的参考。在过去,我发现这是一个非常方便的教程和参考指南。 http://www.pontikis.net/blog/how-to-use-php-improved-mysqli-extension-and-why-you-should

<?php
$host="host"; 
$username="username"; 
$password="password"; 
$db_name="db"; 
$tbl_name="users"; 
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM `users` WHERE `username` = '$_SESSION[username]' ";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result)){
    if ( $row['perm'] == "admin" ) {
        echo "Admin<br />";
    } else {
        echo "Welcome to my homepage!";
    }
}
?>

【讨论】:

  • 当我运行代码时,我没有收到错误,但我只是得到一个空白页。
  • 没关系。我修好了它。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 2013-03-10
  • 2012-08-15
  • 2013-12-29
  • 2014-08-08
  • 1970-01-01
相关资源
最近更新 更多