Php 将多维数组数据插入MySQL数据库
我需要将数组数据插入MySQL数据库。下面提供了我的代码。问题是Php 将多维数组数据插入MySQL数据库,php,mysql,multidimensional-array,Php,Mysql,Multidimensional Array,我需要将数组数据插入MySQL数据库。下面提供了我的代码。问题是query等于 插入到MyTab(数组)值中 (数组,数组,数组,数组,数组,数组,数组,数组,数组,数组,数组,数组) 那么,为什么我得到的是Array而不是Array值呢 $columns = array(); $values = array(); $columns[] = array('Num','appearanceTime'); $curr_time = new DateTime();
query
等于
插入到MyTab
(数组)值中
(数组,数组,数组,数组,数组,数组,数组,数组,数组,数组,数组,数组)
那么,为什么我得到的是Array
而不是Array值呢
$columns = array();
$values = array();
$columns[] = array('Num','appearanceTime');
$curr_time = new DateTime();
while($row=mysql_fetch_assoc($result_arr)) {
$values[] = array($row['Num_arr'],$curr_time);
}
$cols = implode(",",$columns);
$vals = implode(",",$values);
$query = "INSERT INTO `MyTab` ($cols) VALUES ($vals)";
更新
此代码返回行$vals=intlode(…)
处的内部服务器错误
$columns=array('Num','appearanceTime','earliessttime');
$values=array()
数组中的值是数组。您还需要
内爆它们中的每一个:
$vals = implode(',', array_map(function($arr) {
return '(' . implode(',', $arr) . ')';
}, $values));
至于专栏,我想你需要:
$columns = array('Num','appearanceTime');
$values = array();
不是:
您还需要引用所有内容才能将其放入查询中。如果可以的话,您应该使用PDO或MySQLi和prepared语句,而不是mysql\uuu
给定PHP 5.2,第一个示例需要更改为:
function implode_comma($arr) {
return '(' . implode(',', $arr) . ')';
}
# ...
$vals = implode(',', array_map('implode_comma', $values));
尝试删除$columnsThanks之后的括号。我尝试了您的更新。这一个包含一些语法错误:$vals=introde(',',数组_映射(函数($arr){return'('.introde(',',$arr)。');},$values));你知道这里有什么问题吗?还有,$arr是什么?这是一个新变量吗?还是它对应于我的一些变量?@YouKuper:这是一个匿名函数。您使用的是哪个版本的PHP?如果小于5.3,您需要将其转换为实函数,并使用array\u map('your\u function',$values)
。@YouKuper:您没有注意。它不是获取值($values)
。它是“get_values”
。好的,我改为“get_values”,并将函数get_values放在$vals=infrade(…)之前;现在,我在$vals=introde(…)行得到了内部服务器错误;请查看完整的更新代码。
$columns = array();
$values = array();
$columns[] = array('Num','appearanceTime');
function implode_comma($arr) {
return '(' . implode(',', $arr) . ')';
}
# ...
$vals = implode(',', array_map('implode_comma', $values));