php - 将多维php数组插入mysql数据库

标签 php mysql multidimensional-array

我有一个来自 csv 的数组,其结构与此类似:

$array = array(
    array('name', 'age', 'gender'),
    array('Ian', 24, 'male'),
    array('Janice', 21, 'female')
);

我想将它插入到一个 MySQL 表中,其中第一个数组的项目(姓名、年龄、性别)是列标题,每个后续数组是表中的一行。

有人可以建议最好的方法吗?

最佳答案

以下代码可以运行,但它假定所有嵌套数组的长度都相同,换句话说,每个嵌套数组都包含第一个嵌套数组中定义的所有属性的值。

$array = array(
    array('name', 'age', 'gender' ),
    array('Ian', 24, 'male'),
    array('Janice', 21, 'female')
);

$fields = implode(', ', array_shift($array));

$values = array();
foreach ($array as $rowValues) {
    foreach ($rowValues as $key => $rowValue) {
         $rowValues[$key] = mysql_real_escape_string($rowValues[$key]);
    }

    $values[] = "(" . implode(', ', $rowValues) . ")";
}

$query = "INSERT INTO table_name ($fields) VALUES (" . implode (', ', $values) . ")";

只要所有其他嵌套数组的长度相同,此解决方案将适用于第一个嵌套数组中定义的任意数量的属性。对于上面的数组,输出将是:

INSERT INTO table_name (name, age, gender) VALUES (Ian, 24, male), (Janice, 21, female)

有关演示,请参阅 http://codepad.org/7SG7lHaH ,但请注意,我在 codepad.org 上删除了对 mysql_real_escape_string() 的调用,因为它们不允许该函数。在您自己的代码中,您应该使用它。

关于php - 将多维php数组插入mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7746720/

相关文章:

mysql - 如何解决高级过滤器问题,使用 MySQL 查询

c# - C#中如何使用prim算法遍历矩形数组中的单元格

php - Facebook Open Graph,未提供类型为 'og:title' 的必需属性 'string'

php - 表单写入mysql数据库

php - 数据库结构跟踪用户是否打开特定内容的最佳实践?

php - 从文本文件php mysql将数据插入多行

PHP - 在多维数组中搜索

c - 总线错误 10,结构内有二维结构数组

php - 使用 CURL 在服务器中的特定文件夹中下载 MP4 视频

javascript - 类函数中 php 的轻松迭代