gpt4 book ai didi

php - mysql 太多连接错误。

转载 作者:行者123 更新时间:2023-12-01 00:21:25 24 4
gpt4 key购买 nike

我有一个包含 60,000 个英文单词列表的 .txt 文件。我想将这些插入到我的数据库中,所以我只是按照此处显示的那样进行操作。

$file = new SplFileObject('list.txt');

foreach ($file as $line => $word) {
$p = new PDO('mysql:host=localhost; dbname=test_dictionary', 'root', 'test');
$p->query("INSERT INTO words (english) VALUES('$word') ");
}

现在,在我运行此脚本后,出现以下错误:

fatal error :在/var/www/skillz/test/curl/index.php:17 中出现消息为“SQLSTATE[HY000] [1040] 太多连接”的未捕获异常“PDOException”堆栈跟踪:#0/var/www/test/index.php(17): PDO->__construct('mysql:host=loca...', 'root', 'test') #1 {main} 抛入/var/www/第 4 行的 test/index.php

第 4 行new PDO('mysql:') 所在的位置。所以,我试着搜索这个错误,发现 this answer that seemed a solution .我相应地编辑了 mysql,如

$ vi /etc/my.cnf
max_connections=250

但我仍然遇到同样的错误,我有 MySql 5.5.38 在 CentOS 6.5 中运行 PHP-FPM、NGINX

最佳答案

不要为每个单词打开一个新连接。在插入的整个生命周期内,您只需要打开一个连接。我不确定 PDO 对象的真实生命周期,我知道它们在不使用时会被清理,但垃圾收集可能不会在几分钟内完成,对于 60,000 个单词,你会去以比清理它们更快的速度达到与数据库的连接限制。

$file = new SplFileObject('list.txt');
$p = new PDO('mysql:host=localhost; dbname=test_dictionary', 'root', 'test');

foreach ($file as $line => $word) {

$p->query("INSERT INTO words (english) VALUES('$word') ");
}

关于php - mysql 太多连接错误。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25228924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com