将参数1视为资源

时间:2014-05-15 12:58:19

标签: php mysql arrays

请查看下面的代码:

$result = mysql_query("SELECT Value FROM Table");
while(($row =  mysql_fetch_assoc($result))) {

if(strlen($row['Value']) > 1)
{
        //value is not empty or NULL
        echo 'Value found'
}
}

查询返回了3个值,正如预期的那样 - [] [] [1234567]

上面的代码工作正常。 一个'找到的值'是echo'd。

但是,虽然代码按我的意愿运行,但会产生错误:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource

我知道这只是一个警告,我的代码运行正常。但每次运行我的脚本时都会发出警告,这很烦人。

我尝试在 $ result 变量上使用'array_filter',但由于它是查询结果,因此无效。

###编辑###

似乎没人理解这种情况。这不是一个重复的问题。 该查询正在运行。查询返回的值: [],[],[123456]

警告来自空数组值,这是查询结果的一部分。

1 个答案:

答案 0 :(得分:0)

在使用mysql_fetch_assoc 之前,应始终检查mysql_query的返回值 当执行查询失败时mysql_query返回false(布尔值),当您将此作为mysql_fetch_assoc的输入时,您会收到错误。

mysql_query之前打印查询,在mysql中运行它,看看它是否正常工作。