php - 将数组内容存入数据库

标签 php mysql arrays bulkinsert

我有一个 php 函数 getContactList():

$res = getContactList(trim($_POST['username']), trim($_POST['password']));

返回这个数组:

$contactList[] = array('name' => $name, 'email' =>$email);

我需要将这个数组的内容存储到 MySQL 数据库中。 我能以某种方式将数组的全部内容一次性存储在数据库中吗? 数组项的数量每次都会超过 500,所以我想避免通常的循环做法并在 for 循环中调用“Insert”语句,因为这需要很长时间才能执行。

注意:我需要将结果存储在单独的列中 - 一个用于名称,另一个用于电子邮件。该数组中有 500 个项目,我需要插入 500 行 - 每行一对姓名-电子邮件。

最佳答案

$values = array();
// the above array stores strings such as:
// ('username', 'user@domain.com')
// ('o\'brien', 'baaz@domain.com')
// etc
foreach($contactList as $i => $contact) {
    $values[] = sprintf(
        "('%s', '%s')",
        mysql_real_escape_string($contact['name'], $an_open_mysql_connection_identifier),
        mysql_real_escape_string($contact['email'], $an_open_mysql_connection_identifier)
    );
}
$query = sprintf(
    "INSERT INTO that_table(name, email) VALUES %s",
    implode(",", $values)
);

关于php - 将数组内容存入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7847787/

相关文章:

php - 在 Zend Framework 中获取选定的行

php - 表单操作和发布方法不起作用 php

php - 没有输出的时候ob_start就没用了吗?

mysql - 在第一个表的字段或第二个表的字段中使用 WHERE 进行左连接

php - 如何使用 'array_uintersec' 比较两个数组的条件?

mysql - 正确包含等于或大于的sql

mysql - 如何优化导致性能非常低的连接

php - 如何将多维 PHP 数组转换为 XML?

javascript - 在 JavaScript 中调用 object.width 返回 NaN

java - 在具有最小索引的数组中找到第一个重复元素