使用PHP将数据表记录插入MYSQL数据库[重复]

Posted

技术标签:

【中文标题】使用PHP将数据表记录插入MYSQL数据库[重复]【英文标题】:insert datatable records into MYSQL database using PHP [duplicate] 【发布时间】:2012-03-10 16:56:48 【问题描述】:

可能重复:insert multiple rows via a php array into mysql

抱歉,如果我错了,我的问题是我有一个带有50 行的 PHP 数据表 我想将这些50 行数据插入 MYSQL 数据库。是否有任何查询可以一次插入多行。我正在使用 codeigniter MVC 框架

简而言之,我想在数据库中插入一个 PHP 数据表

感谢您的提前

【问题讨论】:

为什么要同时插入多行? 因为,我不想循环 50 次 创建转储文件并在新数据库中执行 Naveen Kumar 能否详细说明... 好吧,你为什么不想循环 50 次? 【参考方案1】:

Mysql Dump 就是你想要的。

下面的链接将帮助您了解您需要做什么..

MYSQL DUMP

AND通过PHP可以这样走

<?php

$db = mysql_connect ( 'localhost', 'username', 'password' );
mysql_select_db( 'database', $db );

$FP = fopen ( 'backup.sql', 'r' );
$READ = fread ( $FP, filesize ( 'backup.sql') );

$READ = explode ( ";\n", $READ );

foreach ( $READ AS $RED )

    mysql_query ( $RED );


echo 'Done';
?> 

将 backup.sql 替换为您的文件名。 我用它来执行 phpBB mySQL 转储到数据库中。

【讨论】:

【参考方案2】:

    您可以从 PHP 批量插入到 MySQL,但您仍然需要注意批量大小。这就是他们在我在上面的评论中链接到的线程中描述的内容。 Per the manual,格式为:

    INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

    如果 2 个数据库位于同一台物理机器上会更好,如果是这种情况,您可以执行跨数据库 INSERT INTO SELECT statement,这将消除任何大型 INSERT 语句或批处理方法SQL 转储,因为数据永远不会离开 MySQL。 (这也应该可以跨机器工作,但如果是这种情况,最好使用 PHP 或之前建议的 SQL 转储)。

【讨论】:

【参考方案3】:

您可能会拥有一个包含所有 50 个数据的数组。

$data = array(
   array(
      'id' => '1' ,
      'data' => 'data-1'
   ),
   array(
      'id' => '2' ,
      'data' => 'data-2'
   )
    ...
    ...
    ...
   array(
      'id' => '50' ,
      'data' => 'data-50'
   )
);

在您的 codeigniter 模型类中,您可能会有一个 insertBulk 函数,例如如下所示。也就是你把上面的数组传给函数。

public function insertBulk($array) 
   $this->db->insert_batch('datatable', $array);


// which produces: INSERT INTO datatable (id, data) VALUES ('1', 'data-1'), ('2', 'data-2'), ...('50', 'data-50');

我没有测试过大型数组,但我认为如果数组太大,您可能需要检查内存使用情况。

【讨论】:

感谢 Jasonw,它工作正常...... @RajneelJoshi 感谢您的验证。

以上是关于使用PHP将数据表记录插入MYSQL数据库[重复]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 忽略插入错误:重复条目

创建PHP时间戳以插入mysql数据库[重复]

PHP将语句插入XAMPP MySQL数据库不会导致表更新[重复]

PHP将生成的数组插入MySQL数据库[重复]

mysql在数据库中插入记录两次[重复]

通过html和php表单将数据插入MySQL数据库时遇到问题[重复]