gpt4 book ai didi

php - while 循环将自定义函数应用于 mysql_fetch_assoc

转载 作者:行者123 更新时间:2023-11-29 06:13:08 25 4
gpt4 key购买 nike

我有一个关于在 while 循环中将自定义函数应用于 mysql_fetch_assoc 的问题。请参阅下面的代码。

//current php page
$query = mysql_query("SELECT ... "); //returns multiple rows

while($rs = whileF($query)) {

//do some fantastic stuff

}

//... functions.php page

function whileF($value = array()) {
$var = mysql_fetch_assoc($value);

foreach($var AS $k => $v) {
$var[$k] = stripslashes($v);
}

return $var;
}

我的问题是我希望能够使用这种类型的函数自动去除不同字段的斜杠(如果需要,我还想记录一些调试数据),但它没有看来合作得太好了。如果我做一个..

print_r($var);

它将返回数组中的所有值,但是通过执行 foreach 语句,我不断收到“警告:为/home/.../includes/functions.php 中的 foreach() 提供的参数无效”,如果我尝试这...

$var = array_map('stripslashes',$var);

我收到“警告:array_map() [function.array-map]:参数 #2 应该是/home/.../includes/functions.php 中的数组”

奇怪的是,它似乎正确应用了 foreach/array_map 函数(值被剥离)。我不想关闭错误,只是为了让它们消失,因为那样会……效率较低的编程。我知道 whileF() 函数工作正常,因为它仍然显示所有信息,如果我去掉 foreach/array_map 语句,它将运行而不会出现任何错误。

想法?我知道我错过了一些东西......

提前致谢。

最佳答案

这是因为最后一次调用 mysql_fetch_assoc 返回 false。您应该将 foreach 包装在 if 中:

function whileF($value = array()) {
$var = mysql_fetch_assoc($value);
if ($var) {
foreach($var AS $k => $v) {
$var[$k] = stripslashes($v);
}
}
return $var;
}

关于php - while 循环将自定义函数应用于 mysql_fetch_assoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8127030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com