Просмотр полной версии : Проблема с пхп скриптом.
silentnuke
08.06.2008, 22:41
Всем добрый вечер. Вот тут пишу 1 скрипт и столкнулся с парой проблем.
2.Когда запускаю на хостинге скрипт начинает выполнять то что должен, но через каке-то время пишет MySQL server has gone away, иногда просто через каке-то время предлогает скачать страницу.. Понятно что дает нагрузку серверу,помогите оптимизировать. заранее спасибо :confused: сам скрипт ниже
*скрыто*
YoYo Factory
08.06.2008, 22:54
С скриптом все нормально!
Может проблема с хостингом?
А кстати что за пропуски между .t и xt?
//ассортимент магазина
curl_setopt($sessions,CURLOPT_COOKIEFILE,'cookie.t xt');
silentnuke
08.06.2008, 23:23
С скриптом все нормально!
Может проблема с хостингом?
А кстати что за пропуски между .t и xt?
//ассортимент магазина
curl_setopt($sessions,CURLOPT_COOKIEFILE,'cookie.t xt');
пропусков нету это я когда закинул сюда откуда-то появились.
хорошо но где ошибка с переменной money? потому что если её убирать становится хоть как-то работать, елси не убрать вылазит ошибка писал вверху какая.
Ошибка в запросе: Unknown column 'money' in 'field list'
Это говорит о том, что либо ты где то ошибся при составлении запроса, либо какие то траблы у тебя со структурой таблицы. Не там ошибку ищите...
silentnuke
09.06.2008, 02:02
Ошибка в запросе: Unknown column 'money' in 'field list'
Это говорит о том, что либо ты где то ошибся при составлении запроса, либо какие то траблы у тебя со структурой таблицы. Не там ошибку ищите...
спс добрый челоек ,действительно забыл добавить таблицу money))
осталась однатрабла с этим mysql server has gone away(
Это говорит о том что нету колонки "money" в табличке твоей
Ошибка MySQL server has gone away
Все изложенное в данном разделе относится также и к родственной ошибке Lost connection to server during query.
Наиболее часто ошибка MySQL server has gone away возникает в результате тайм-аута соединения и его закрытия сервером. По умолчанию сервер закрывает соединение по прошествии 8 часов бездействия. Можно изменить лимит времени, установив при запуске mysqld переменную wait_timeout.
Другой распространенной причиной получения ошибки MySQL server has gone away является выдача команды "закрытия" на соединении MySQL с последующей попыткой выполнить запрос на закрытом соединении.
Если это получено в скрипте, то достаточно просто повторить запрос от клиента, чтобы соединение автоматически восстановилось.
Обычно в этом случае выдаются следующие коды ошибки (какой из них вы получите, зависит от ОС):
Код ошибки Описание CR_SERVER_GONE_ERROR Клиент не может послать запрос серверу. CR_SERVER_LOST Клиент не получил ошибки при передаче запроса серверу, но он не получил также полного ответа (или хоть какого-то ответа) на запрос. Ошибка будет также выдана, если кто-нибудь уничтожит выполняющийся поток посредством kill номерпотока.
Проверить, что MySQL на ходу, можно, запустив mysqladmin version и изучив время работы (uptime). Если проблема в аварийном завершении mysqld, то необходимо сосредоточиться на поиске причины аварии. В этом случае следует сначала проверить, не будет ли уничтожен MySQL снова при повторном задании запроса (see section A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями (http://www.mysql.ru/docs/man/Crashing.html)).
Эти ошибки будут также выдаваться при посылке серверу неверного или слишком длинного запроса. Если mysqld получает неправильный или слишком большой пакет, то сервер предполагает, что с клиентом что-то не так, и закрывает соединение. Если необходимо выполнять объемные запросы (например, при работе с большими столбцами типа BLOB), можно увеличить предельный размер запроса, запустив mysqld с опцией -O max_allowed_packet=# (по умолчанию 1 Mб). Дополнительная память выделяется по требованию, так что mysqld будет использовать больше памяти только в случае, когда выдан большой запрос или когда mysqld должен возвратить большую строку результата!
Если у вас возникнет желание сделать отчет об ошибке по этой проблеме, то не забудьте включить в него следующие сведения:
Информацию о том, упал MySQL или нет (это можно определить по файлу hostname.err (see section A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями (http://www.mysql.ru/docs/man/Crashing.html)).
Если определенный запрос уничтожает mysqld, а используемые в нем таблицы перед выполнением запроса проверялись с помощью CHECK TABLE, то желательно составить контрольный тест (see section E.1.6 Создание контрольного примера при повреждении таблиц (http://www.mysql.ru/docs/man/Reproduceable_test_case.html)).
Значение переменной wait_timeout в сервере (это значение выдает mysqladmin variables).
Информацию о том, пробовали ли вы запускать mysqld с --log и проверять, появляется ли выданный запрос в журнале. Обращайтесь к разделу See section 1.8.1.2 Как задавать вопросы и направлять сообщения об ошибках (http://www.mysql.ru/docs/man/Asking_questions.html).
silentnuke
09.06.2008, 02:17
Ошибка MySQL server has gone away
Все изложенное в данном разделе относится также и к родственной ошибке Lost connection to server during query.
Наиболее часто ошибка MySQL server has gone away возникает в результате тайм-аута соединения и его закрытия сервером. По умолчанию сервер закрывает соединение по прошествии 8 часов бездействия. Можно изменить лимит времени, установив при запуске mysqld переменную wait_timeout.
Другой распространенной причиной получения ошибки MySQL server has gone away является выдача команды "закрытия" на соединении MySQL с последующей попыткой выполнить запрос на закрытом соединении.
Если это получено в скрипте, то достаточно просто повторить запрос от клиента, чтобы соединение автоматически восстановилось.
Обычно в этом случае выдаются следующие коды ошибки (какой из них вы получите, зависит от ОС):
Код ошибки Описание CR_SERVER_GONE_ERROR Клиент не может послать запрос серверу. CR_SERVER_LOST Клиент не получил ошибки при передаче запроса серверу, но он не получил также полного ответа (или хоть какого-то ответа) на запрос. Ошибка будет также выдана, если кто-нибудь уничтожит выполняющийся поток посредством kill номерпотока.
Проверить, что MySQL на ходу, можно, запустив mysqladmin version и изучив время работы (uptime). Если проблема в аварийном завершении mysqld, то необходимо сосредоточиться на поиске причины аварии. В этом случае следует сначала проверить, не будет ли уничтожен MySQL снова при повторном задании запроса (see section A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями (http://www.mysql.ru/docs/man/Crashing.html)).
Эти ошибки будут также выдаваться при посылке серверу неверного или слишком длинного запроса. Если mysqld получает неправильный или слишком большой пакет, то сервер предполагает, что с клиентом что-то не так, и закрывает соединение. Если необходимо выполнять объемные запросы (например, при работе с большими столбцами типа BLOB), можно увеличить предельный размер запроса, запустив mysqld с опцией -O max_allowed_packet=# (по умолчанию 1 Mб). Дополнительная память выделяется по требованию, так что mysqld будет использовать больше памяти только в случае, когда выдан большой запрос или когда mysqld должен возвратить большую строку результата!
Если у вас возникнет желание сделать отчет об ошибке по этой проблеме, то не забудьте включить в него следующие сведения:
Информацию о том, упал MySQL или нет (это можно определить по файлу hostname.err (see section A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями (http://www.mysql.ru/docs/man/Crashing.html)).
Если определенный запрос уничтожает mysqld, а используемые в нем таблицы перед выполнением запроса проверялись с помощью CHECK TABLE, то желательно составить контрольный тест (see section E.1.6 Создание контрольного примера при повреждении таблиц (http://www.mysql.ru/docs/man/Reproduceable_test_case.html)).
Значение переменной wait_timeout в сервере (это значение выдает mysqladmin variables).
Информацию о том, пробовали ли вы запускать mysqld с --log и проверять, появляется ли выданный запрос в журнале. Обращайтесь к разделу See section 1.8.1.2 Как задавать вопросы и направлять сообщения об ошибках (http://www.mysql.ru/docs/man/Asking_questions.html).
это для локлки,а у меня на хосте...
Это для тебя для локалки, а для всех это для всего...
http://mysql.ru/docs/
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot