【问题标题】:How to add id (primary key) when insert a multi-dimensional php array into a mysql table?将多维php数组插入mysql表时如何添加id(主键)?
【发布时间】:2017-07-02 14:10:23
【问题描述】:

我创建了这个 mysql 表:

CREATE TABLE earthquakes (
 id INT(20) AUTO_INCREMENT,
 idserial VARCHAR(30),
 milliseconds BIGINT,
 latitude FLOAT,
 longitude FLOAT,
 magnitude FLOAT,
 ipocentro FLOAT,
 source VARCHAR(4),
 region SMALLINT,
 PRIMARY KEY(id),
 INDEX indice_idserial(idserial),
 INDEX indice_milliseconds(milliseconds),
 INDEX indice_lat_lng(latitude,longitude),
 INDEX indice_magnitude(magnitude),
 INDEX indice_ipocentro(ipocentro)
);

我想将一个多维 php 数组插入到一个 mysql 表中,但我不知道还要添加 id

这是添加数组的代码:

//MULTIDIMENSIONAL ARRAY
$array_database= array(
 array("2017-06-30-104",1498858541000,39.3322,-122.9027,2.11,0,"U",36)
);
//

foreach($array_database as $row) {
    $idserial_db= mysql_real_escape_string($row[0]); 
    $milliseconds_db = mysql_real_escape_string($row[1]);
    $latitude_db = mysql_real_escape_string($row[2]);
    $longitude_db = mysql_real_escape_string($row[3]);
    $magnitude_db = mysql_real_escape_string($row[4]);
    $ipocentro_db= mysql_real_escape_string($row[5]);
    $source_db= mysql_real_escape_string($row[6]);
    $region_db= mysql_real_escape_string($row[7]);  

    $valori_db[] = "('$idserial_db',$milliseconds_db,$latitude_db,$longitude_db,$magnitude_db,$ipocentro_db,'$source_db',$region_db)";
}
$values = implode(',', $valori_db); 


mysqli_query($connessione,"INSERT INTO earthquakes (idserial,milliseconds,latitude,longitude,magnitude,ipocentro,source,region) VALUES $values");

那么我如何添加ID

非常感谢,对不起我的英语

编辑 也许我应该以这种方式添加ID

 mysqli_query($connessione,"INSERT INTO earthquakes (id,idserial,milliseconds,latitude,longitude,magnitude,ipocentro,source,region) VALUES $values");

【问题讨论】:

  • 好像没问题,你遇到了什么错误?
  • 在 mysql_query (最后一行)也许我应该添加 id 字段?
  • id 字段是 auto_increment 那么你遇到了什么问题
  • @MuhammadMuazzam 请看我的编辑
  • @Borja 你不需要在查询中添加 ID .. 你有什么错误?

标签: php mysql arrays multidimensional-array sql-insert


【解决方案1】:

在声明中:

//MULTIDIMENSIONAL ARRAY
$array_database= array(
 array("", "2017-06-30-104",1498858541000,39.3322,-122.9027,2.11,0,"U",36)
);
//

在循环中:

 $valori_db[] = "    ('','$idserial_db',$milliseconds_db,$latitude_db,$longitude_db,$magnitude_db,$ipocentro_db,'$source_db',$region_db)";

在查询中:

mysqli_query($connessione,"INSERT INTO earthquakes  (id,idserial,milliseconds,latitude,longitude,magnitude,ipocentro,source,region) VALUES $values");

【讨论】:

  • 不,你的代码没有错,但是如果你真的需要查询中的ID,那就必须这样做。
  • 但是在我的多维数组中我没有第一个空值...有问题吗?不……对吧?
  • ID 为空值。它将自动创建,因为数据库中的该列是 auto_incremental。
  • 这就是为什么在我的查询中我也可能不包含“id”
猜你喜欢
  • 2017-07-03
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 2011-12-06
  • 1970-01-01
  • 2017-12-17
  • 2014-05-28
相关资源
最近更新 更多