【问题标题】:php array_walk_recursive not working on mysql result set array with stripslashesphp array_walk_recursive 不适用于带有stripslashes的mysql结果集数组
【发布时间】:2012-03-11 21:48:04
【问题描述】:

我有一个 mysql 结果数组,我正在尝试使用 array_walk 在数组上删除斜杠。它不是从 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>';

【问题讨论】:

    标签: mysql arrays stripslashes


    【解决方案1】:

    一些建议:

    1) 删除查询中的开头和结尾空格。

    2) mysql_fetch_assoc 应为小写。

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

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

    【讨论】:

    • 对不起,我的意思是说它没有剥离斜线。它正在返回结果。
    • 您似乎不需要递归行为...您为什么不尝试使用array_walkarray_map?此外,请尝试使用 mysql_fetch_array,以防万一关联数组出现问题。
    • 我尝试了 array_walk 和 array_map 并且它们都没有剥离斜线。谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 2023-03-28
    • 2019-02-13
    • 2012-02-29
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    相关资源
    最近更新 更多