2012-03-11 20 views
0

私はmysqlの結果配列を持っていましたが、array_walkを使って配列のストライプスラッシュをしようとしています。これはmysqlからのスラッシュを削除するものではありません。それは私が手作業で追加した配列($ dataArr ['xxx'])で動作しています。php array_walk_recursiveが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は一度に1行しか返さないことを念頭に置いてください。すべての結果を取得するには、whileループで作業する必要があります。 documentationの例を参照してください。

4)mysql_fetch_assocの代わりにmysql_fetch_arrayを使用することをお勧めします。 hereを参照してください。

+0

申し訳ありませんが、私はスラッシュを取り除いていないと言います。結果を返す。 – EricP

+0

あなたは再帰的な動作を必要としていないようです...なぜ 'array_walk'または' array_map'を試してみませんか?また、mysql_fetch_arrayを試してみてください。連想配列が気になる場合があります。 –

+0

私はarray_walkとarray_mapを試しましたが、両方ともスラッシュを取り除いていません。ありがとう – EricP

関連する問題