2012-03-11 34 views
0

我有一个mysql结果数组,并且我正在尝试使用array_walk在数组上使用stripslashes。它不会从mysql中删除斜杠。它正在处理我手动添加的数组($ dataArr ['xxx'])。php array_walk_recursive不能在带有stripslashes的mysql结果集数组上工作

这里是我的代码:

$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>'; 

回答

0

一些建议:

1)在你的查询中删除前导和结束空间。

2)mysql_fetch_assoc应该是小写字母。 3)请注意,mysql_fetch_assoc一次只返回一行。您需要使用while循环来获取所有结果。请参阅documentation中的示例。

4)您可能更喜欢使用mysql_fetch_array而不是mysql_fetch_assoc。见here

+0

对不起,我的意思是说它没有剥离斜杠。它正在返回结果。 – EricP 2012-03-11 22:07:22

+0

你似乎不需要递归行为......你为什么不尝试'array_walk'或'array_map'?另外,如果有关于关联数组的问题,请尝试使用“mysql_fetch_array”,这可能会让人困扰。 – 2012-03-11 22:12:10

+0

我试着array_walk和array_map,他们都没有剥去斜线。谢谢 – EricP 2012-03-11 22:19:24