使用PHP将datatable记录插入MYSQL数据库

使用PHP将datatable记录插入MYSQL数据库,php,codeigniter,Php,Codeigniter,可能重复: 如果我错了,请道歉,我的问题是我有一个PHP数据表,有50行 我想将这些50行数据插入MYSQL数据库。是否有一次插入多行的查询。我正在使用codeigniter MVC框架 简而言之,我想在数据库中插入一个PHP数据表 谢谢你的帮助,Mysql转储就是你想要的 下面的链接将帮助你了解你需要做什么 通过PHP,它可以像这样运行 <?php $db = mysql_connect ( 'localhost', 'username', 'password' ); mysql_

可能重复:

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

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


谢谢你的帮助,Mysql转储就是你想要的

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

通过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转储到数据库中

  • 您可以从PHP批量插入MySQL,但仍然需要注意批量大小。这就是他们在我上面评论中链接到的帖子中所描述的,格式为:

    在tbl_名称中插入(a、b、c)值(1,2,3)、(4,5,6)、(7,8,9)

  • 如果这两个数据库在同一台物理机器上,那么更好的做法是,如果是这样的话,您可以跨数据库执行操作,使用SQL转储消除任何大型INSERT语句或批处理方法,因为数据永远不会离开MySQL。(这也可以跨机器工作,但如果是这样的话,可能最好使用PHP或SQL转储,如前所述)


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

    $data = array(
       array(
          'id' => '1' ,
          'data' => 'data-1'
       ),
       array(
          'id' => '2' ,
          'data' => 'data-2'
       )
        ...
        ...
        ...
       array(
          'id' => '50' ,
          'data' => 'data-50'
       )
    );
    
    在codeigniter模型类中,您可能会有一个插入Bulk的函数,例如如下所示。即将上述数组传递给函数

    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');
    

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

    为什么要同时插入多行?因为我不想循环50次创建转储文件并在新数据库中执行Naveen Kumar您能详细说明一下吗…好的,你为什么不想循环50次呢?谢谢Jasonw它很好…@RajneelJoshi谢谢你的验证。