我有一个问题,所以我在我的项目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 exhaustedwork 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/

10-13 02:13