php array_walk_recursive没有处理带有stripslashes的mysql结果集数组

时间:2012-03-11 21:48:05

标签: mysql arrays stripslashes

我有一个mysql结果数组,我正在尝试使用array_walk在数组上使用striplashes。它不是从mysql中删除斜杠。它正在处理我手动添加的数组($ dataArr ['xxx'])。

这是我的代码:

$sql = ' select * from `ads` where id = 3 ';
$res = mysql_query($sql, $conn) or die(mysql_error());
$row = MYSQL_FETCH_ASSOC($res);

$dataArr = $row;

$dataArr['xxx'] = '<script type=\'text/javascript\'><!--//<![CDATA[
           var m3_u = (location.protocol==\'https:\'?\'https://ads.test.com/www/delivery/ajs.php\':\'http://ads.test.com/www/delivery/ajs.php\');
           var m3_r = Math.floor(Math.random()*99999999999);
           if (!document.MAX_used) document.MAX_used = \',\' etc.... etc....;
         ';
array_walk_recursive($dataArr, 'stripslashes');
print '<pre>'; print_r($dataArr); print '</pre>';

1 个答案:

答案 0 :(得分:0)

一些建议:

1)删除查询中的前导和结尾空格。

2)mysql_fetch_assoc应为小写。

3)请记住mysql_fetch_assoc一次只返回一行。您需要使用while循环来获取所有结果。请参阅documentation

中的示例

4)您可能更愿意使用mysql_fetch_array代替mysql_fetch_assoc。请参阅here