这里是生成的数组:
$data = array();
for($i = 0; $i < 100; $i++){
$data[] = array(
'name' => md5(rand()),
'active' => rand(0, 1)?'active':'banned',
'create_date' => rand(0, 1)?'now':'2014/12/31 14:51:52',
'income' => base64_encode(rand(-9999, 9999)),
);
}
我尝试将这些数据保存到数据库:
$columns = implode(", ",array_keys($data));
$escaped_values = array_map('mysql_real_escape_string', array_values($data));
$values = implode(", ", $escaped_values);
$sql = "INSERT INTO `data`($columns) VALUES ($values)";
但不幸的是,它不起作用,显示了以下警告:"MYSQL_REAL_ESCAPE_STRING((期望参数1为字符串,ARRAY GIVEN IN…">
如何解决这个问题?
您应该这样写:
'name' => mysql_real_escape_string(md5(rand())),
和delele:
$escaped_values = array_map('mysql_real_escape_string', array_values($data));