Im в настоящее время работает специальный скрипт PHP, который при запуске на моем локальном хосте работает нормально, однако при работе на виртуальном хостинге, я получаю следующее сообщение об ошибке:PHP Mysql PDO: Общая ошибка: 2006 Сервер MySQL ушел
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2006
MySQL server has gone away' in ...... 205 Stack trace:
0 ........ PDO->prepare('SELECT * FROM o...') #1 {main} thrown in .......... on line 205
(я заменил пути к файлам с .......)
вещей я пытался:
Добавление
PDO::ATTR_TIMEOUT => "999999999999999999999"
, чтобы продлить любой таймаут.Проверил
max_allowed_packet
(каждый ответ ив нашел говорит, что это является причиной) Моя местная машина в настоящее время устанавливается в1048576
(1Mb), однако мой хостинг в настоящее время установлен в268435456
(268 МБ)
I будет понятно, если моя локальная машина была 268 МБ, а мой хостинг - 1 Мб, но это не имеет никакого смысла, что это является причиной проблемы, поскольку это не так.
Я попытался увеличить его на своем хостинге, но по мере его совместного использования у меня нет прав на изменение этой глобальной переменной.
Любые другие идеи, что я мог попробовать?
FYI Вот сценарий:
//MYSQL PREPARE STATEMENTS
//check to see if a product is in database
$mysql['productcheck'] = $mysql['pdo']->prepare('SELECT * FROM oc_product WHERE sku = ?');
$newproductcount=0;
$x = 0;
while(($maintable[$x]['status']=="active") || ($maintable[$x]['status']=="new") || ($maintable[$x]['status']=="discontinued") || ($maintable[$x]['status']=="archive")) {
if(($maintable[$x]['status']=="active") || ($maintable[$x]['status']=="new")){
//check to see if product exsists
$params[1]=$maintable[$x]['euid'];
$mysql['productcheck']->execute([$params[1]]);
if($mysql['productcheck']->rowCount()==0){
//PRODUCT DOESN'T EXSIST
echo "Product doesnt exsists!";
$newproductcount++;
}
}
$x++;
}
Такая же проблема - В моем случае проблема была я попытался выполнить запрос после закрытия соединения с сервером - т.е. 'wait_timeout' или, возможно,' connect_timeout' было запущено (30 секунд по умолчанию). В приложении была явная логическая ошибка. – bodi0