请查看下面的代码:
$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]
警告来自空数组值,这是查询结果的一部分。
答案 0 :(得分:0)
在使用mysql_fetch_assoc
之前,应始终检查mysql_query的返回值
当执行查询失败时mysql_query
返回false
(布尔值),当您将此作为mysql_fetch_assoc
的输入时,您会收到错误。
在mysql_query
之前打印查询,在mysql中运行它,看看它是否正常工作。