2

我正在尝试阅读存储在 mysql 表中的评论。出于某种原因,即使最后一行是空白的,我总是在文件的最后一行出现解析错误。我不确定它是否相关,但 connect.php 可用于将评论放入数据库。我正在使用 wampserver 来托管它并手动对其进行编码。

我认为这与 while 循环有关,当我在结尾处注释掉 while(){ 和 } 时,我只会得到一些缺少的变量错误,正如您所期望的那样。我对 php 编码很陌生,所以我很确定问题很简单,我要么错过了,要么没有正确理解。

无论如何,这是我的代码:

<?php
include "connect.php";
?>

<?php
$sql = "SELECT * FROM main";
$result = mysql_query($sql) or die("Could not get posts from table");
while($rows=mysql_fetch_array($result)){
?>
     <table bgcolor="green" align="center">
     <tr>
     <td></td>
     </tr>
     <tr>
     <td><strong> <? echo $rows['name']; ?> </strong></td>
     </tr>
     <tr>
     <td> <? echo $rows['email']; ?> </td>
     </tr>
     <tr>
     <td> <? echo $rows['comment']; ?> </td>
     </tr>
     </table>
<?
}
?>

谢谢您的帮助。:)

4

6 回答 6

10

看起来您禁用了 PHP 短标签。所以

代替

<?

<?php

为了使您的程序可移植,请避免使用短标签。如果您仍然必须使用可以启用的短标签。请参阅帖子以了解如何操作。

于 2010-02-05T14:27:19.157 回答
6

您是否启用了短标签?您的代码底部如下所示:

<? 
} 
?> 

如果未启用短标签,则必须打开一个 php 标签<?php

<?php
} 
?>

没有正确的开始标签会导致最后一行出现错误,因为它期待在}那里。另见: http: //www.bin-co.com/php/articles/using_php_short_tags.php

于 2010-02-05T14:27:51.320 回答
1

捷径并不总是可用的。短标签可用 short_tags 函数 ()(仅限 PHP 3),设置 PHP short_open_tag 配置文件的参数,或通过编译 PHP 使用 -enable-short -tags 选项来配置。尽管它在 php.ini-dist 中默认启用,但它不鼓励使用短标签格式。

尽管这可能还不够,但手册重申并扩展了其他不合适的情况:

“注意:在开发用于再分发的应用程序或库时,或者为不受您控制的服务器开发时,不要使用短标签,因为服务器可能不支持短标签。要构建可移植的、可再分发的代码,一定不要使用短标签。”

事实上,在 PHP 6 或 7 中,这些标签将被移除。

顺便说一句,在 Zend Framework 手册中明确表示“不允许使用短标签”:)

于 2010-02-06T16:17:22.293 回答
0

如果可能,启用短标签。那是你的问题。如果您将 php 添加到您的每个

于 2010-02-05T15:58:23.857 回答
0

如果您将文件包含在其他 php 文件中,请尝试删除文件末尾的结束 PHP 标记(当然,使用完整的标记名称):

   ....<td> <? echo $rows['comment']; ?> </td>
 </tr>
 </table>
<?php
}
于 2010-02-05T15:01:03.240 回答
0

我已经被那些看起来不像的角色抛弃了几次。当我从浏览器复制粘贴代码时,我发现删除并重新输入 ' 和 " 可以清除错误。

于 2010-02-06T04:54:47.493 回答