允许的内存大小为 138412032 字节耗尽(试图分配 20480 字节)

我正在尝试使用Slim PHP Framework开发一个 PHP 作曲家应用程序,并尝试migrations.php像这样对文件进行更改

<?php


declare(strict_types=1);


require __DIR__ . '/../../src/App/App.php';


try {

    $settings = $app->getContainer()->get('settings');


    $hostname = $settings['db']['hostname'];

    $username = $settings['db']['username'];

    $password = $settings['db']['password'];

    $database = $settings['db']['database'];


    $pdo = new PDO("mysql:host=$hostname", $username, $password); //Possibly the connection

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


    $sql = "DROP DATABASE IF EXISTS $database";

    $pdo->exec($sql);

    echo "[OK] Database droped successfully" . PHP_EOL;


    $sql = "CREATE DATABASE $database";

    $pdo->exec($sql);

    echo "[OK] Database created successfully" . PHP_EOL;


    $sql = "USE $database";

    $pdo->exec($sql);

    echo "[OK] Database selected successfully" . PHP_EOL;


    $sql = file_get_contents(__DIR__ . '/../../database/database.sql');

    $pdo->exec($sql);

    echo "[OK] Tables created successfully" . PHP_EOL;

//    echo "[OK] Records inserted successfully" . PHP_EOL;

    $data = file_get_contents(__DIR__ . '/../../database/companies.json');

    $array = json_decode($data, true);

    foreach($array as $row) {

        $relationships = $row["relationships"];


        $pdo->exec($sql);


    }

    echo "[OK] Json inserted into tables successfully" . PHP_EOL;




} catch (PDOException $e) {

    echo "[ERROR] " . $e->getMessage() . PHP_EOL;

}


翻阅古今
浏览 141回答 2
2回答

凤凰求蛊

我建议你可以通过以下方式设置它:ini_set('memory_limit',&nbsp;'80M');然而,这是一个糟糕的解决方案,尽量不要将整个 json 文件加载到内存中并使用类似jsonstreamingparser的东西。

一只名叫tom的猫

是128M,设置memory_limit = 256M举例,希望对你有帮助(在.this中)
打开App,查看更多内容
随时随地看视频慕课网APP