Php 将多维数组数据插入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();

我需要将数组数据插入MySQL数据库。下面提供了我的代码。问题是
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));