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


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

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

$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():提供的参数不是一个有效的MySQL结果资源在/rmounts/vol0-nas/yorkweb/web/fencing/MyWebSite/homecontent.php在第113行"。

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

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

是否在while循环体中更改了$result的值?为什么不将其更改为ifvar_dump($result),以确保它仍然是一个资源?

在$sql

的定义中有一个野;

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

尝试在查询中删除分号。所以只要

$sql = "SELECT * FROM practice_calendar_times";