为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
翻阅古今 2022-12-23 15:33:15
我正在尝试使用Slim PHP Framework开发一个 PHP 作曲家应用程序,并尝试migrations.php像这样对文件进行更改<?phpdeclare(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;}
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

我建议你可以通过以下方式设置它:

ini_set('memory_limit', '80M');

然而,这是一个糟糕的解决方案,尽量不要将整个 json 文件加载到内存中并使用类似jsonstreamingparser的东西。


查看完整回答
反对 回复 2022-12-23
?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

是128M,设置memory_limit = 256M举例,希望对你有帮助

(在.this中)


查看完整回答
反对 回复 2022-12-23
  • 2 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信