PHP存储数组到数据库的逻辑问题

时间:2014-05-19 06:55:33

标签: php mysql arrays

我有一个数组如下:

$data = array('John',22,'Peter',31,'Kevin',30,'Jessy',28.......'Revin',23);

此数组将包含数千个名称,年龄相同格式的元素。

现在我需要使用PHP / MYSQL函数将这个数组插入表中。

--------------------
Id     Name    Age 
--------------------
1      John     22 
2      Peter    31
3      Kevin    30

请注意不要给出循环或爆炸等选项。感谢帮助

3 个答案:

答案 0 :(得分:4)

我希望波纹管代码可以根据您的要求工作, 快乐编码: - )

        $data=array('John',22,'Peter',31,'Kevin',30,'Jessy',28);// list of array
        $array=array_chunk($data, 2);// converting array to  multidimensional array
        $arraytostr = implode(',', array_map(function($el){ return "('".$el['0']."',".$el['1'].")"; }, $array)); // implode the multidimensional array to ','separate array
        $query="INSERT INTO test (fname,age) VALUES ".$arraytostr;// append the new ',' separate array with query

答案 1 :(得分:3)

$query = $pdo_db->prepare("
INSERT
INTO table (
    name,
    age
)
VALUES " . rtrim(str_repeat('(?,?),', count($data)/2), ',')
);
$query->execute($data);

答案 2 :(得分:0)

没有循环就无法做到这一点,imo。

$data = array('John',22,'Peter',31,'Kevin',30,'Jessy',28);
$length = count($data);

for($i=0;$i<$length;$i+=2) {
    $sql = 'INSERT INTO <TABLE> (`Name`,`Age`) VALUES ("' . ( $data[$i] ) . ',"' . $data[$i+1] . '");';
}

可以更好地安排数组来表示数据。