php中的Mysql 1041查询限制
我有一个PHP脚本(mysqli函数),它将php中的Mysql 1041查询限制,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个PHP脚本(mysqli函数),它将插入到…查询中,作为字符串数组并将它们逐个发送到mysql数据库。问题是大约有40000个查询,我的数据库总是在1041之后停止插入新的查询,并很快关闭连接 这是php的限制还是mysql的问题?或者别的什么?如何避免此问题并将所有查询发送到数据库 代码如下: $data // my array of strings - mysql queries ini_set ('error_reporting', E_ALL);
插入到…
查询中,作为字符串数组并将它们逐个发送到mysql数据库。问题是大约有40000个查询,我的数据库总是在1041之后停止插入新的查询,并很快关闭连接
这是php的限制还是mysql的问题?或者别的什么?如何避免此问题并将所有查询发送到数据库
代码如下:
$data // my array of strings - mysql queries
ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', '1');
error_reporting (E_ALL|E_STRICT);
$connection = mysqli_init();
mysqli_options ($connection, MYSQLI_CLIENT_SSL_VERIFY_SERVER_CERT, true);
mysqli_ssl_set($connection,'/usr/local/certs/client-key.pem',
'/usr/local/certs/client-cert.pem', '/usr/local/certs/server-ca.pem', NULL, NULL);
$link = mysqli_real_connect ($connection, $db['host'], $db['user'], $db['password'],
$db['dbName'], 3306, NULL,MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);
if (!$link)
{
die ('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n");
}
else
{
foreach ($data as $index => $queryToSend) {
if($connection->query($queryToSend))
{
$this->output->writeln('succesfull query number: '.$index);
}
}
$connection->close();
}
我认为您应该尝试批量插入,这将帮助您克服所面临的问题
这里有一个参考资料
我认为您应该尝试批量插入,这将帮助您克服所面临的问题
这里有一个参考资料
更改php文件中的默认执行时间
ini设置(“最大执行时间”,120)//120秒
我希望这会有所帮助。更改php文件中的默认执行时间
ini设置(“最大执行时间”,120)//120秒
我希望这会有所帮助。您的脚本是否可能以默认的30秒时间限制终止?您可以增加php.ini设置、时间限制,或者您可以将作业分成若干部分。Jiri:我不知道问题是什么,因为在我的终端中,mysql进程似乎仍在工作,但没有添加任何新查询。我的意思是我只能用ctr/cmd+c终止它button@ampher911调用mysqli\u query()
失败后,您从mysql收到的错误消息是什么?另外,当您使用变量输入运行SQL查询时,您应该使用准备好的语句。您的脚本是否可能以默认的30秒时间限制终止?您可以增加php.ini设置,Jiri:我不知道问题出在哪里,因为在我的终端mysql进程中,它似乎仍在工作,但没有添加任何新的查询。我的意思是我只能用ctr/cmd+c终止它button@ampher911调用mysqli\u query()
失败后,您从mysql收到的错误消息是什么?此外,在使用变量输入运行SQL查询时,应该使用准备好的语句。