我想插入约50000 MySQL查询在MySQL数据库, “插入”为了这个,我有2个选项,导入大文件
1-直接导入(.SQL)文件: 继错误发生 “您可能试图上传过大的文件,请参阅文档以了解如何解决此限制的方法。”
2-使用php代码以(.sql)格式从不同块中插入这些查询文件。 这里是我的代码:
<?php
// Configure DB
include "config.php";
// Get file data
$file = file('country.txt');
// Set pointers & position variables
$position = 0;
$eof = 0;
while ($eof < sizeof($file))
{
for ($i = $position; $i < ($position + 2); $i++)
{
if ($i < sizeof($file))
{
$flag = mysql_query($file[$i]);
if (isset($flag))
{
echo "Insert Successfully<br />";
$position++;
}
else
{
echo mysql_error() . "<br>\n";
}
}
else
{
echo "<br />End of File";
break;
}
}
$eof++;
}
?>
但内存大小错误然而发生,我有扩展内存限制从128M到256M甚至512M。
那么我认为如果我能能够在一个时间来加载从(.SQL)文件像1000限量行执行MySQL查询那么它可能是从文件导入的所有记录到数据库中。 但在这里我没有对如何处理文件的起始位置到结束,我怎么可以更新的起点和终点的位置,所以它不会从取.sql文件的先前获取行的想法。
你重新启动服务,并再次尝试在改变memory_limit的 – Treby 2010-01-06 06:18:35
有你“指[编者按]到文档的方法来解决这个限制“? – Boldewyn 2010-01-07 08:46:13