好的 在您告诉我使用 mysqli 之前,我故意在 Web 应用程序课程中使用折旧方法。我不是学生,这不是家庭作业,而是帮助我了解Web应用程序安全。
我不知道为什么这行不通。基本上,我要做的就是创建一个页面,从 mysql 数据库中获取数据并将其放入表中,如图所示。在这一点上,我对任何事情都持开放态度。
提前谢谢你。
<html>
<head><title>Untitled</title></head>
<body>
<h1>Weblog Example</h1>
<dl>
<?php
mysql_connect("localhost","root","");
mysql_select_db("blog1");
$query ="SELECT entrytitle, entrytext,";
$query.=" DATE_FORMAT(entrydate, '%M %d, %Y') AS entrydate";
$query.=" FROM weblog ORDER BY entrydate DESC LIMIT 10";
$result=mysql_query($query);
?>
<table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td width="15%" align="center" bgcolor="#E6E6E6"><strong>Title</strong></td>
<td width="75%" align="center" bgcolor="#E6E6E6"><strong>Entry</strong></td>
<td width="15" align="center" bgcolor="#E6E6E6"><strong>Date/Time</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['entrytitle']; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['entrytext']; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['entrydate']; ?></td>
</tr>
<?php
}
?>
</dl>
</body>
</html>
好的 - 进行了一些小的编辑 - 它现在在表中给了我 3 行,但没有填充数据......
对$entrytitle和$entrytext进行var_dump,您就会明白自己的错误。执行mysql_fetch_array时,数据会临时存储在$rows中。
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><? echo $rows["entrytitle"]; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows["entrytext"]; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows["entrytext"]; ?></td>
</tr>
<?php
}
?>
您在 while 循环中使用了错误的变量,您也没有从查询结果中引用正确的date
列。
这应该会给你你想要的东西:
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows['entrytitle']; ?></td>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows['entrytext']; ?></td>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows['entrydate']; ?></td>
</tr>
<?php
}
?>
您的两个$query.=
都应该读作$query .=
仅此一项就会成为一个问题,并且由于点前缺少空格而无法正确连接。
您还缺少</table>
标记。
另外,请确保设置/打开短标签,否则<?php echo $rows...
而不是<? echo $rows...
.
还应使用以下方法检查可能的查询错误:
$result = mysql_query($query) or die(mysql_error());
以及使用错误报告。
将错误报告添加到文件顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只应在暂存中完成,而不应在生产环境中完成。
- 我还建议您切换到带有预准备语句的
mysqli
,或者使用带有准备好语句的 PDO,它们更安全。