MySQL Fetch Array布尔错误

时间:2012-10-14 13:59:37

标签: php mysql arrays fetch

这是我的代码

<?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中给出的布尔值

2 个答案:

答案 0 :(得分:3)

我怀疑你忘了把它用单引号包装

$result = mysql_query("SELECT * 
                       FROM post 
                       WHERE username = '".$username."' 
                       ORDER BY ID DESC ");

但是你仍然容易受到sql注入攻击。请花时间阅读下面的文章

Best way to prevent SQL injection in PHP?

答案 1 :(得分:0)

如果出现错误,

mysql_query()会返回布尔值FALSE。因此,SELECT声明中存在错误。

在尝试对$result === FALSE执行某些操作之前,您应该先检查$result。如果$result === FALSE,请使用mysql_error()了解更多有关错误的信息。

请注意,不推荐使用mysql_query()和其他mysql_*函数。转而使用mysqli_*PDO函数/方法。 PDOmysqli_*的一个重要特性是准备好的陈述。它们将帮助您避免SQL注入攻击。