我在我的Linux环境中尝试了相同的脚本(我没有在Windows上运行),它运行得很完美。脚本的要点(尽管不相关)是打印出表的内容。
脚本如下:
table_contents.php
<?
$user="root";
$password="";
$database="newtest";
$con = mysqli_connect(localhost,$user,$password,$database);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query="SELECT * FROM contacts";
$result = mysqli_query($con,$query);
$num = mysqli_num_rows($result); // COUNT for FOR LOOP
echo '<table border=\'1\'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>'; //This is where it starts printing out everything.
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['first'] . "</td>";
echo "<td>" . $row['last'] . "</td>";
echo "</tr>";
}
mysqli_close($con);
?>
table_contents.php在我的浏览器上显示以下行:
Firstname Lastname '; while($row = mysqli_fetch_array($result)) { echo ""; echo "" . $row['first'] . ""; echo "" . $row['last'] . ""; echo ""; } mysqli_close($con); ?>
指示上面脚本中的注释行是将要显示的所有内容抛出的点。
为什么会造成这种情况,我该如何解决?
答案 0 :(得分:8)
您的服务器未配置为接受短标记(<?
)。因此,浏览器会看到从<?
到第一个>
的所有内容都是非常长,非常无效的HTML标记。之后的任何事情都被视为文本。
您应该使用完整的<?php
来打开PHP代码块。
答案 1 :(得分:1)
尝试使用<?php
而不是使用<?
,或者,如果您不想更改脚本:更改php.ini中的选项short_open_tag(设置为on)