MariaDB / PHP / PDO Неправильный серверный пакет - PullRequest
0 голосов
/ 17 апреля 2019

В настоящее время я переносю множество наших скриптов на другой сервер, и у меня возникла странная проблема, по которой я не могу найти много документации.Пожалуйста, помогите, если вы уже сталкивались с этой проблемой.

Я получаю следующее сообщение об ошибке:

PDOStatement::fetch(): Malformed server packet. Field length pointing 16 bytes after end of packet in updater.php on line x

Сообщение об ошибке указывает, что ошибка произошла от $row=$to_process->fetch()Заявление в следующем сценарии.Количество байтов после окончания пакета изменяется каждый раз, когда я запускаю этот скрипт, но ошибка происходит каждый раз, когда я его запускаю.

    $tables_to_process=array('table_a','table_b','table_c','table_d','table_e','table_f');
    $master_threads=0;
    foreach($tables_to_process as $table)
    {
            $master_threads++;
            sleep(1);
            if(pcntl_fork())
                    continue;

            $pdo=get_pdo(); //creates PDO connection
            $to_process=$pdo->query("select * from big_table_with_accounts where account=\"$table\""); 
            while($row=$to_process->fetch()) //ERROR COMES FROM HERE
            {
                //processing
            }
            exit;
    }
    while($master_threads>0)
    {
            pcntl_wait($status);
            $master_threads--;
    }

Информация о сервере:

Server: MariaDB Server version: 10.2.15-MariaDB MariaDB Server Protocol version: 10 Connection: 1.1.1.1 via TCP/IP

Настройки подключения PDO:

$opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => true, PDO::MYSQL_ATTR_USE_BUFFERED_QUERY=> false, PDO::MYSQL_ATTR_FOUND_ROWS => true ];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...