说我有以下代码:
$mysqli=new MySQLi('localhost', 'blah', 'blah', 'blah');
$articles=$mysqli->query("SELECT * FROM `articles`");
$articles_row=array_map('stripslashes', $articles->fetch_assoc());
我会收到一条消息,说“参数2需要一个数组”。
以这种方式使用array_map被认为是不好的做法,为什么?为什么会出错?
答案 0 :(得分: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" ;
答案 1 :(得分:0)
您不应对数据库中的数据应用任何条带 你不应该首先添加它们。
您似乎正在使用预备语句,这使得转义无用。从而获得数据库中的转义数据(这是错误的)。
因此,不要对通过预准备语句添加的数据使用$mysqli->real_escape_string()
,并且不需要任何striplashes。