PHP скрипт не может обработать одновременную отправку формы POST - PullRequest
0 голосов
/ 24 апреля 2020

Я новичок в PHP. У меня есть php скрипт, который хранит данные формы в MySql v5.6 верстаке.

Для однократной отправки это работает очень хорошо, однако, если более 20 человек одновременно нажимают кнопку отправки, ни один из запросов не обрабатывается!

Я проверил файл журнала, изначально у меня была следующая ошибка:

mysqli::__construct(): (HY000/2002): Only one usage of each socket address (protocol/network address/port) is normally permitted.\r\n in C:...\\DBConfig.php on line 16

Затем я сослался на этот пост MySQL / PHP Ошибка: [2002] Только одно использование каждого адреса сокета (протокола / сетевого адреса / порта) обычно разрешено и вносит изменения в реестр.

После внесения изменений в реестр у меня больше не возникает вышеуказанная ошибка, но многие пользователи по-прежнему не могут одновременно отправлять данные формы.

Я снова проверил файл журнала, он говорит: PHP Fatal error: Maximum execution time of 30 seconds exceeded in C:...\\DBConfig.php on line 16, followed by the error "PHP Fatal error: Uncaught Error: Call to a member function create() on null

Метод create() написан на другом скрипте, который, я считаю, не работает из-за максимального времени выполнения.

Я хочу знать, как разрешить нескольким пользователям (около 500) одновременно отправлять данные одновременно.

Я использую Apache 2.4 для windows server 2012 r2 (8 ГБ ОЗУ), php 7, я использую сессии во всех моих скриптах. Я также изменил max_execution_time на 300 в php .ini, хотя я не знаю, будет ли это работать около 500 пользователей. Пожалуйста, помогите.

Мой класс DBConfig (я удалил параметры соединения):

(...)
protected $connection;

public function __construct()
{
    if (!isset($this->connection)) {

        $this->connection = new mysqli($this->_host, $this->_username, $this->_password, $this->_database); //Line 16
        mysqli_set_charset($this->connection, "utf8");
        if (!$this->connection) {
            echo 'Cannot connect to database server';
            exit;
        }
    }

    return $this->connection;
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...