Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用一个巨大的数组填充一个表_Php_Mysql_Database_Arrays_Insert - Fatal编程技术网

Php 用一个巨大的数组填充一个表

Php 用一个巨大的数组填充一个表,php,mysql,database,arrays,insert,Php,Mysql,Database,Arrays,Insert,我试图用我从页面上抓取的内容填充一个表。问题是,近二十万个项目同时被插入,破坏了系统。我得到了错误: 警告:mysql_query()[function.mysql query]:mysql服务器已消失在第15行的C:\xampp\htdocs\testing\scrabble2.php中 警告:mysql_query()[function.mysql query]:在第15行的C:\xampp\htdocs\testing\scrabble2.php中读取结果集的头时出错 无法添加项目:MyS

我试图用我从页面上抓取的内容填充一个表。问题是,近二十万个项目同时被插入,破坏了系统。我得到了错误:

警告:mysql_query()[function.mysql query]:mysql服务器已消失在第15行的C:\xampp\htdocs\testing\scrabble2.php中

警告:mysql_query()[function.mysql query]:在第15行的C:\xampp\htdocs\testing\scrabble2.php中读取结果集的头时出错

无法添加项目:MySQL服务器已消失


使用MySQL
扩展插入
,这将大大减少查询数量:

INSERT INTO ScrabbleWords (ID, Words) VALUES ('', 'Word1'), ('', 'Word2'), ('', 'Word3'), ...;
您可以循环并分组,每次插入1000个单词

您还可以增加MySQL连接超时:

ini_set('mysql.connect_timeout', 300); // seconds
ini_set('default_socket_timeout', 300);

使用MySQL
扩展插入
,这将大大减少查询数量:

INSERT INTO ScrabbleWords (ID, Words) VALUES ('', 'Word1'), ('', 'Word2'), ('', 'Word3'), ...;
您可以循环并分组,每次插入1000个单词

您还可以增加MySQL连接超时:

ini_set('mysql.connect_timeout', 300); // seconds
ini_set('default_socket_timeout', 300);

尝试像这样使用insert:

INSERT INTO example
    VALUES
  (100, 'Name 1', 'Value 1', 'Other 1'),
  (101, 'Name 2', 'Value 2', 'Other 2'),
  (102, 'Name 3', 'Value 3', 'Other 3'),
  (103, 'Name 4', 'Value 4', 'Other 4');

尝试像这样使用insert:

INSERT INTO example
    VALUES
  (100, 'Name 1', 'Value 1', 'Other 1'),
  (101, 'Name 2', 'Value 2', 'Other 2'),
  (102, 'Name 3', 'Value 3', 'Other 3'),
  (103, 'Name 4', 'Value 4', 'Other 4');

为什么MySQL服务器会消失

如果向服务器发送的查询不正确或太大,则可能会出现这些错误。如果mysqld接收到一个数据包太大或顺序错误,它会认为客户端出现了问题并关闭连接。如果需要大查询(例如,如果使用大BLOB列),可以通过设置服务器的
max\u allowed\u packet
变量来增加查询限制,该变量的默认值为1MB。您可能还需要增加客户端上的最大数据包大小。有关设置数据包大小的更多信息,请参见章节
C.5.2.10
“数据包太大”


这可能是您的问题的答案,也可能不是,但我认为这是最可能的原因。

为什么MySQL服务器会消失

如果向服务器发送的查询不正确或太大,则可能会出现这些错误。如果mysqld接收到一个数据包太大或顺序错误,它会认为客户端出现了问题并关闭连接。如果需要大查询(例如,如果使用大BLOB列),可以通过设置服务器的
max\u allowed\u packet
变量来增加查询限制,该变量的默认值为1MB。您可能还需要增加客户端上的最大数据包大小。有关设置数据包大小的更多信息,请参见章节
C.5.2.10
“数据包太大”


这可能是你问题的答案,也可能不是,但我认为这是最可能的原因。

当我读到问题和单词“ScrabbleWords”时,我笑了哈哈。MySQL服务器不应该只是“走开”——检查日志输出中的MySQL\u错误。。。(默认情况下)可以在/var/log/mysql/mysql\u error中找到如果你只是想要拼字列表,那么你可以在本地加载它和加载数据,你可以在这里找到它们:或者,当我读到问题和单词“拼字”时,我大笑哈哈。mysql服务器不应该只是“走开”—检查日志输出中的mysql\u错误。。。(默认情况下)可以在/var/log/mysql/mysql\u error中找到。如果您只需要拼字列表,就可以在本地加载加载数据,您可以在这里获得这些数据:或者这个建议将使您从200000个INSERT语句增加到200个INSERT语句(假设您一次执行1000个单词)如果我知道你的意思,这似乎是最优雅的回答。原谅我的无知,我的追求是真诚的。如何循环这些单词的分组?在我将它们分组后,每个组都存储在一个变量中?在你的例子中,“Word1”、“Word2”等的值是什么?这个建议将把你从200000个插入语句带到200个插入语句(假设你一次做1000个单词)。如果我知道你的意思,这似乎是最优雅的答案。原谅我的无知,我的追求是真诚的。如何循环这些单词的分组?在我将它们分组后,每个组都存储在一个变量中?在您的示例中,“Word1”、“Word2”等的值是什么?