Php 期望参数1是资源

Php 期望参数1是资源,php,mysql,arrays,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] 上面的代码

请查看下面我的代码:

$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\u filter”,但由于它是一个查询结果,因此不起作用

####编辑####

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


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

在使用
mysql\u fetch\u assoc之前,您应该始终检查mysql\u查询的返回值
当查询执行失败时,
mysql\u query
返回
false
(一个布尔值),并且当您将其作为
mysql\u fetch\u assoc
的输入时,您会得到错误


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

mysql在一段时间内以PDO和mysqli为标准:(@Naruto我知道我应该使用mysqli,一旦我解决了这些小错误并使功能正常工作,我就会转换成这个。我想你是说,在使用mysql\u fetch\u assoc之前,确保我的查询实际上返回了数据。但是问题是,从查询返回的值数组既包含空值,也包含正常值。while循环正在检查内容,并在看到空值时抛出警告…总之,查询是有效的,上面的代码是有效的。但我收到了传递给while循环的空值的警告。在我的回答中,您必须检查您的查询是否成功执行。如果只有您的查询执行成功y您可以调用mysql_fetch_assocI understand,我已经包含了该检查。但是正如我所说的,查询正在工作,它正在返回值…但是其中一些值不包含数据,例如[],[],[5432131]