插入数据表记录到MySQL数据库使用PHP
可能重复:
insert multiple rows via a php array into mysql插入数据表记录到MySQL数据库使用PHP
道歉,如果我错了,我的问题是我有50
行 我想一个PHP数据表将这些50
行数据插入到MYSQL数据库中。是否有任何查询一次插入多行。我使用笨MVC框架
总之,我想Inadvance
您可能会拥有一个包含所有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它工作的很好.... – 2012-02-21 06:22:18
@RajneelJoshi谢谢你的验证。 – Jasonw 2012-02-21 07:16:05
Mysql的转储是你想要的插入PHP数据表到数据库
感谢。
下面的链接将helpo你出去了解你需要做什么..
,并通过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转储到数据库中。
谢谢,OM永恒 – 2012-02-20 10:55:14
我的宝库@RajneelJoshi – 2012-02-20 10:59:35
-
您可以从PHP批量插入到MySQL,你还是要小心批量大小虽然。这是他们在我上面评论中链接到的主题中描述的内容。 Per the manual,格式为:
INSERT INTO tbl_name(A,B,C)VALUES(1,2,3),(4,5,6),(7,8,9);
什么是更好的是如果两个数据库都在同一物理机上,如果是那样的话,你可以做一个跨数据库INSERT INTO SELECT statement这将消灭任何大的INSERT语句或一个批次的办法SQL转储,因为数据永远不会离开MySQL。 (这也应该跨机器工作,但如果是这种情况,最好使用前面提到的PHP或SQL转储)。
为什么要同时插入多行? – JJJ 2012-02-20 10:34:13
因为,我不想循环50次 – 2012-02-20 10:35:08
创建一个转储文件,并在新的数据库中执行它 – 2012-02-20 10:35:11