警告:mysql_fetch_array():提供的参数不是有效的MySQL结果资源

时间:2011-09-09 03:05:23

标签: php mysql

当我运行以下php代码时,即使在practice_calendar_times中有多行,while循环也只运行一次。

$sql = "
    SELECT * FROM practice_calendar_times;
    ";
$result = mysql_query($sql, $con);
if($result){
    while($practice = mysql_fetch_array($result)){
        //... Prints data from the row + more ...
    }
}

在网页上,我收到一条打印的警告消息:“警告:mysql_fetch_array():提供的参数不是/rmounts/vol0-nas/yorkweb/webs/fencing/MyWebSite/homecontent.php中有效的MySQL结果资源第113行“。

第113行是while循环。我查了一下,显然这通常是由mysql查询的语法错误引起的。然而,这不是这种情况; mysql正确地从数据库中拉出第一行,而while循环正在运行一次。如果我用if替换while,如果它没有抱怨并打印出一行。我还尝试在practice_calendar_times中删除除了一行之外的所有行,但仍然会收到警告消息。但是,当我删除所有行时,它不会打印警告。

关于如何让while循环遍历表并停止抱怨的任何想法?

3 个答案:

答案 0 :(得分:2)

您是否正在改变while循环体中$result的值?为什么不在它之后将其更改为ifvar_dump($result)以确保它仍然是资源?

答案 1 :(得分:0)

$ sql

的定义中有一个狂野的;

你能正确得到第一个结果吗?

答案 2 :(得分:-1)

尝试删除查询中的分号。 所以只是

$sql = "SELECT * FROM practice_calendar_times";