我无法弄清楚为什么收到此警告:“警告:为foreach()提供了无效的参数”。该代码在本地工作,但是当我推送到服务器时,我得到警告。有什么想法吗?
function updateVIfromScores($client_id, $vi__weight_array){
$vi = 0;
$sql = "SELECT * FROM client_vulnerability_scores
WHERE client_id = $client_id";
$result = mysql_query($sql) or die('query in updateVIfromScores failed:'.mysql_error().'<br/>sql:'.$sql.'<br/>');
foreach(mysql_fetch_array($result, MYSQLI_ASSOC) as $key => $value){
$vi += $vi__weight_array{$key} * $value;
}
return $vi;
}
最佳答案
您的查询可能未返回任何结果(因此foreach
不在数组上操作),在假定存在以下条件之前,应始终检查是否有结果:
$result = mysql_query($sql)
or die('query inupdateVIfromScoresfailed:'.mysql_error().'<br/>sql:'.$sql.'<br/>');
if(mysql_num_rows($result)){
foreach(mysql_fetch_array($result, MYSQLI_ASSOC) as $key => $value){
$vi += $vi__weight_array{$key} * $value;
}
}
else{
// log it or something
}
未经测试的代码,但您有希望。
干杯
关于php - PHP-警告:为foreach()提供了无效的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13243080/