如何将数据从数组(PHP)保存到MySQL表?(使用MySQLi)


How to save data from array (PHP) to MySQL table? (using MySQLi)

这里是生成的数组:

$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));