这是我的代码
<?php
$result = mysql_query("SELECT * FROM post WHERE username = ".$username." ORDER BY ID DESC ");
while($row = mysql_fetch_array($result)){
?>
<div class="post">
<a href="/p/<?php echo $row['ID']; ?>" class="post-title"><?php echo $row['title']; ?> - (Rating: <?php echo $row['rank']; ?>)</a>
<p class="post-content"><?php echo $row['description']; ?><br /><br />On <?php echo $row['date']; ?></p>
</div>
<?php }; ?>
但是我收到了这个错误:
警告:mysql_fetch_array()期望参数1是资源, 第77行/*/programs/user.php中给出的布尔值
答案 0 :(得分:3)
我怀疑你忘了把它用单引号包装
$result = mysql_query("SELECT *
FROM post
WHERE username = '".$username."'
ORDER BY ID DESC ");
但是你仍然容易受到sql注入攻击。请花时间阅读下面的文章
答案 1 :(得分:0)
mysql_query()
会返回布尔值FALSE
。因此,SELECT
声明中存在错误。
在尝试对$result === FALSE
执行某些操作之前,您应该先检查$result
。如果$result === FALSE
,请使用mysql_error()
了解更多有关错误的信息。
请注意,不推荐使用mysql_query()
和其他mysql_*
函数。转而使用mysqli_*
或PDO
函数/方法。 PDO
和mysqli_*
的一个重要特性是准备好的陈述。它们将帮助您避免SQL注入攻击。