【发布时间】:2011-12-28 22:44:21
【问题描述】:
我有一个关于在 mysql_fetch_assoc 在 while 循环中应用自定义函数的问题。请参阅下面的代码。
//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 语句,它将运行而不会出现任何错误。
想法?我知道我错过了什么......
提前致谢。
【问题讨论】:
标签: php mysql function while-loop