我正在尝试读取存储在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>
<?
}
?>
感谢您的帮助。 :)
答案 0 :(得分:10)
答案 1 :(得分:6)
您是否启用了短标签?代码的底部如下所示:
<?
}
?>
如果未启用短标记,则必须使用<?php
<?php
}
?>
没有正确的开始标记会导致最后一行出错,因为它预计会有}
。另见:http://www.bin-co.com/php/articles/using_php_short_tags.php
答案 2 :(得分:1)
短路并不总是可用。短标签可用short_tags函数()(仅限PHP 3),设置PHP short_open_tag配置文件的参数,或者使用--enable-short -tags选项编译PHP进行配置。虽然它在php.ini-dist中默认启用,但它不鼓励使用短标签格式。
虽然这可能还不够,但手册重申并扩展了其他不合适的情况:
“注意:在开发用于重新分发的应用程序或库时,或者为不受您控制的服务器开发应用程序或库时,请勿使用短标记,因为服务器可能不支持短标记。便携式,可再发行的代码,请务必不要使用短标签。“
事实上,在PHP 6或7中,这些标签将被删除。
BTW,在Zend Framework手册中明确指出“永远不允许短标签”:)答案 3 :(得分:0)
如果您将文件包含在其他某个php文件中,请尝试删除文件末尾的结束PHP标记(当然,使用完整的标记名称):
....<td> <? echo $rows['comment']; ?> </td>
</tr>
</table>
<?php
}
答案 4 :(得分:0)
如果可能,启用短标签。那是你的问题。如果你为每个人添加PHP
答案 5 :(得分:0)
我被一些不是他们看起来的人物抛弃了几次。当我从浏览器复制粘贴代码时,我发现删除并重新输入'和'可以清除错误。