php - 如何根据第一个数组列名在数据库表中插入数组值

标签 php mysql arrays

我正在从 csv 文件导入数据,所以我使用了该代码

<?php
$path = "Export.csv";
$row = 1;
if (($handle = fopen($path, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $row++;
        $data_entries[] = $data ;


    }
    fclose($handle);
}
 echo"<pre>";
 print_r($data_entries);
 echo"</pre>";
?>

我的数组输出就像我的第一个数组显示列名然后所有数组显示值所以我想插入基于第一个数组列名的值

 Array
 (
  [0] => Array
    (
        [0] => Type
        [1] => PinCode
        [2] => APN
        [3] => County
    )
  [1] => Array
    (
        [0] => Auction
        [1] => 503082537
        [2] => 502-052-002
        [3] => United States of America
    )
  [2] => Array
    (
        [0] => Auction
        [1] => 21596378
        [2] => 628-202-038
        [3] => Australia
     )
 )

最佳答案

试试下面的代码:

//extract the column names
$fields = array_shift($data_entries);
$values = array();

// Append the values
foreach($data_entries as $value){
   $values[]="('{$value[0]}', '{$value[1]}', '{$value[2]}', '{$value[3]}' )";
}

// Build the SQL
$sql = "INSERT INTO `TABLE_NAME` (" . implode(',' , $fields) . ") values " . implode(',', $values);

关于php - 如何根据第一个数组列名在数据库表中插入数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12000332/

相关文章:

php - 使用 PDO 从 mysql 数据库检索数据时未找到数据库

php - 在 MySQL 数据库表中存储 IP 地址时出现问题

mysql - MySql 中的通配符类型

java - 有没有办法在多个列表中找到共同的元素?

javascript - 循环遍历对象数组 - 第一次迭代后数组已完全加载

arrays - split-sequence- 用双空格分隔序列

php 错误日志,如何删除重复项/查找唯一错误

php - Mysql 不允许在调用时显示表

mysql - 如何把这个mysql select 改成sql server select 语句?

mysql - 使用sqoop从Mysql导入数据到Hbase时出错