Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Ошибка MySQL server has gone away / 5 сообщений из 5, страница 1 из 1
10.06.2013, 12:55
    #38292392
meg17m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка MySQL server has gone away
Здравсвтуйте! При выполнении кода:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
$nn=0;
		for ($iki = 0; $iki < count($arrusername); $iki++) {
			if ($arrusername[$iki]->bets > 0) 
			{
				$llevel = 1;
				for ($jkj = 0; $jkj < count($arrlevels); $jkj++) {
					if ($arrusername[$iki]->bets >= $arrlevels[$jkj]->betsamount) {
						$llevel = $arrlevels[$jkj]->level;
					}
				}
				if ($llevel > 1) {
					$nn++;
					if ($nn > -5) {
					
						//DB::query("SET AUTOCOMMIT=0"); 
						//DB::query("START TRANSACTION"); 
						DB::query(Database::UPDATE,"
									UPDATE kkk SET level = '".$llevel."' WHERE ppp = '".$arrusername[$iki]->username."' ")->execute(); 
						//DB::query("COMMIT");
						echo "
									UPDATE kkk SET level = '".$llevel."' WHERE ppp = '".$arrusername[$iki]->username."' <br>";			
						sleep(1);
					}
				}
			}
		}


Вылетает ошибка: Database_Exception [ 2006 ]: MySQL server has gone away [ SELECT * FROM randomgipopotam ] ~
Если закомментировать строку:
Код: php
1.
2.
3.
//DB::query(Database::UPDATE,"
									UPDATE kkk SET level = '".$llevel."' WHERE ppp = '".$arrusername[$iki]->username."' ")
									->execute(); 


- ошибка исчезает. В коде запроса SELECT * FROM randomgipopotam вообще нет. Что это может быть за глюк? Какие есть идеи?
...
Рейтинг: 0 / 0
10.06.2013, 13:05
    #38292406
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка MySQL server has gone away
Запросы в цикле это слишком адово)
Видимо в настройках сервера указаны каике-то ограничения на количество запросов в сессии или еще где.
...
Рейтинг: 0 / 0
10.06.2013, 14:57
    #38292640
meg17m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка MySQL server has gone away
Hett,

Переписал через IN:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
$userslevelsarr = array();
		for ($jkj = 0; $jkj < count($arrlevels); $jkj++) {
			$userslevelsarr[$arrlevels[$jkj]->level] = "'-1'";
		}
		
		$nn=0;
		for ($iki = 0; $iki < count($arrusername); $iki++) {
			if ($arrusername[$iki]->bets > 0) 
			{
				$llevel = 1;
				for ($jkj = 0; $jkj < count($arrlevels); $jkj++) {
					if ($arrusername[$iki]->bets >= $arrlevels[$jkj]->betsamount) {
						$llevel = $arrlevels[$jkj]->level;
					}
				}
				
				
				for ($jkj = 0; $jkj < count($arrlevels); $jkj++) {
					if ($llevel == $arrlevels[$jkj]->level) {
						$userslevelsarr[$arrlevels[$jkj]->level] .= ",'".$arrusername[$iki]->username."'";
					}
				} 
				
				$nn++;
				//usleep(10);
			}
		}
		
		
		for ($jkj = 0; $jkj < count($arrlevels); $jkj++) {
			DB::query(Database::UPDATE,"
									UPDATE xxx SET level = '".$arrlevels[$jkj]->level."' WHERE yyy IN (".$userslevelsarr[$arrlevels[$jkj]->level].") ")
									->execute(); 
			//echo " UPDATE xxx SET level = '".$arrlevels[$jkj]->level."' WHERE yyy IN (".$userslevelsarr[$arrlevels[$jkj]->level].") <br>";
		}



Итого в скрипте всего 4 запроса на весь скрипт. В итоге выдает ту же самую ошибку. В чем еще может быть причина?
...
Рейтинг: 0 / 0
10.06.2013, 15:04
    #38292659
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка MySQL server has gone away
MegaLasta,

Реальный текст проблемного запроса (а не пхп-код для его создания) запостите в профильный форум. А так, не видя реального запроса вообще вряд ли возможно что-то толковое сказать.
...
Рейтинг: 0 / 0
10.06.2013, 15:20
    #38292711
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка MySQL server has gone away
Может у вас текст запроса теперь 100500 символов.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Ошибка MySQL server has gone away / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]