0

次のコードがあるとします。

$mysqli=new MySQLi('localhost', 'blah', 'blah', 'blah');
$articles=$mysqli->query("SELECT * FROM `articles`");
$articles_row=array_map('stripslashes', $articles->fetch_assoc());

「引数 2 には配列が必要です」というメッセージが表示されます。

このように array_map を使用することは悪い習慣と見なされますか?なぜですか? なぜエラーが発生するのですか?

4

2 に答える 2

0

データベースから取得したデータにストリップスラッシュを適用しないでください。
そもそもそれらを追加するべきではありません。

準備されたステートメントを使用しているようで、エスケープが役に立たなくなります。したがって、データベースでエスケープされたデータを取得します(これは間違っています)。

したがって、$mysqli->real_escape_string()準備されたステートメントを介して追加するデータには使用しないでください。ストリップスラッシュは必要ありません。

于 2013-04-08T04:17:07.813 に答える
0

これを試して、データを保存することを忘れないでください。

$mysqli=new MySQLi('localhost', 'blah', 'blah', 'blah');
if ($result=$mysqli->query("SELECT * FROM `articles`")){
  if ($result->num_rows >= 1){
    $articles = array() ; //Create a storage
    while($article = $result->fetch_assoc()){
      $articles[] = array_map("stripslashes", $article) ; //Call the function for each row
    }
  } else
    echo "No rows" ;
} else 
  echo "Fail query" ;
于 2013-04-07T23:00:57.670 に答える