我有一个问题,所以我在我的项目10数据库。每个数据库都有表members
。在每个表中,我有200万行,所以在10个数据库中大约有2000万行。我这样试过:
foreach ($aDataBases as $database) {
$sSql = sprintf('SELECT nom,prenom,naiss FROM `%s`', $sTableName);
$rResult = Mysqli::query($sSql, $database);
while ($aRecord = $rResult->fetch_array(MYSQLI_ASSOC))
{
$aUsers['lastName'] = $aRecord['name'];
$aUsers['firstName'] = $aRecord['f_name'];
$aUsers['birthDate'] = $aRecord['birth'];
$aTotalUsers[] = $aUsers;
}
}
当我运行时,我得到错误
members
。例如,如果我输入selectAllowed memory size of 134217728 bytes exhausted
work perfect。你能帮帮我吗? 最佳答案
只需将代码放入一个循环中,并对每个SQL调用1000个条目。循环,直到打印完所有行。有些人会告诉你提高你的记忆极限,但总有一个你不能通过的物理极限。
我不会为你编写代码,因为你是一个PHP程序员,你有这个想法。不过,这是伪代码:
base = 0
while (rows = getrows(base,1000))
foreach row in rows
print row
base = base + 1000
关于php - 在mysql中选择大量插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33952970/