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=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 回答
0

您不应该对从数据库获得的数据应用任何斜杠。
您不应该首先添加它们。

似乎您正在使用准备好的语句,这使得转义毫无用处。从而获得数据库中的转义数据(这是错误的)。

所以,不要$mysqli->real_escape_string()在你通过准备好的语句添加的数据上使用,而且你永远不需要带斜杠。

于 2013-04-08T04:17:07.813 回答