【发布时间】:2017-11-09 23:07:37
【问题描述】:
我必须将多维php数组的元素插入到表mysql中,但我不知道应该在那里使用什么样的方法。
首先创建表
CREATE TABLE earthquakes (
milliseconds BIGINT,
latitude FLOAT,
longitude FLOAT,
magnitude FLOAT,
depth FLOAT,
source VARCHAR(2),
region SMALLINT,
serial VARCHAT(16)
);
我是否应该为其他列添加字符长度?
现在是插入元素的代码:
$array = array(
array(12345678901112145,-35.4905,167.7843,7.5,450.4,"E",134,"2017-01-10-134"),
array(12345678901112145,35.4905,-167.7843,3.2,45.4,"U",13,"2016-01-10-14"),
array(12345678901112145,-35.4905,-167.7843,10.0,4,"I",1,"2016-01-10-1")
);
$data = array();
foreach($array as $row) {
$milliseconds = mysql_real_escape_string($row[0]);
$latitude = mysql_real_escape_string($row[1]);
$longitude = mysql_real_escape_string($row[2]);
$magnitude = mysql_real_escape_string($row[3]);
$depth= mysql_real_escape_string($row[4]);
$source= mysql_real_escape_string($row[5]);
$code= mysql_real_escape_string($row[6]);
$serial= mysql_real_escape_string($row[7]);
$data[] = "($milliseconds,$latitude,$longitude,$magnitude,$depth,'$source',$code,'$serial')";
}
$values = implode(',', $data);
$sql = "INSERT INTO earthquakes (milliseconds,latitude,longitude,magnitude,depth,source,region,serial) VALUES $values";
我怀疑代码是否正确,但特别是如果我必须为每个元素(添加到表中的每个值)添加 " " 双引号或单引号。
我希望你能帮助我并理解我的英语:(
更新
如果我回显$sql,这是结果
INSERT INTO earthquakes (milliseconds,latitude,longitude,magnitude,depth,source,region,serial) VALUES (12345678901112145,-35.4905,167.7843,7.5,450.4,'E',134,'2017-01-10-134'),(12345678901112145,35.4905,-167.7843,3.2,45.4,'U',13,'2016-01-10-14'),(12345678901112145,-35.4905,-167.7843,10,4,'I',1,'2016-01-10-1')
【问题讨论】:
-
你检查
$values的值了吗?我想你在VALUES之后查询会报错 -
结果是什么?..只需
echo $sql并在此处显示 -
@Jana 结果在哪里?
-
@Swellar 你为什么这么认为?
-
您是否尝试过回显
$values的结果?
标签: php mysql arrays database type-conversion