Перейти к контенту
  • 0

Ошибка при работе с базой данных


Вопрос

Вот целый день сегодня ставил моды,м вечером зашел в форум/index.php?act=Stats&CODE=leaders

И там такая надпись :

 

Ошибка при работе с базой данных

Возникла проблема при работе с базой данных.

Вы можете попробовать обновить эту страницу, нажав сюда

 

Из за чего может быть ошибка?

 

Из лога мускуля:

Время: Thu, 14 Jun 2007 01:57:30 0300

Код ошибки: 1064

Сообщение сервера: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')

 

ORDER BY m.members_l_display_name' at line 4

Запрос: SELECT m.*, me.*

 

FROM ibf_members m

 

LEFT JOIN ibf_member_extra me ON (me.id=m.id)

 

WHERE m.mgroup IN (4,8,10,)

 

ORDER BY m.members_l_display_name

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Из-за неправильной установки модов.

Если тебе нужна помощь, возьми за привычку говорить версии софта (форум, мускул, PHP) а так...

Перазалей файло, которое менял, из дистра и не парься.

Моды потом снова поставишь. Так быстрее будет. (ИМХО)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

./sources/misc/stats.php.

 

Попутно можете поглядель на яичко: http://imya.foruma/index.php?act=Stats&CODE=id

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Ответ смотрим в папке ./cache/

Я писал в первом посте -

 

Время: Thu, 14 Jun 2007 01:57:30 0300

Код ошибки: 1064

Сообщение сервера: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')

 

ORDER BY m.members_l_display_name' at line 4

Запрос: SELECT m.*, me.*

 

FROM ibf_members m

 

LEFT JOIN ibf_member_extra me ON (me.id=m.id)

 

WHERE m.mgroup IN (4,8,10,)

 

ORDER BY m.members_l_display_name

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Проверьте в файле ./sources/sql/mysql_queries.php:

	function stats_get_all_members_groups( $a )
{
	return "SELECT m.*, me.*
			 	FROM ".SQL_PREFIX."members m
					LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
			 	WHERE m.mgroup IN (".implode( ',', $a['group_ids'] ).")
			 	ORDER BY m.members_l_display_name";
}

Особое внимание уделите символам после implode. Так у вас?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Проверьте в файле ./sources/sql/mysql_queries.php:

	function stats_get_all_members_groups( $a )
{
	return "SELECT m.*, me.*
			 	FROM ".SQL_PREFIX."members m
					LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
			 	WHERE m.mgroup IN (".implode( ',', $a['group_ids'] ).")
			 	ORDER BY m.members_l_display_name";
}

Особое внимание уделите символам после implode. Так у вас?

Да,точно также (

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Попробуйте заново вносить изменения в ./sources/sql/mysql_queries.php и смотреть, на каком шаге появляется эта ошибка.

 

p.s. попробуйте сначала посмотреть модификацию репутации (extend) на ошибки.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

davidoff

А версию мускула так и не хочешь назвать? Поверь, будет намного проще.

Может все дело в 4.1.х версии мускула. Иногда помогает обновление до 4.4.х а лучше вообще до 5.х.х

 

А так... у меня был случай, когда небыло записи в таблице (ставил мод "кланы") и из-за этого вылетала ошибка.

Создал - и все прошло.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Там явная синтаксическая ошибка, приглядись :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Копать надо начинать вот с этого...

WHERE m.mgroup IN (4,8,10,)

Какого айух-а(читать с зеркалом :D ) там после 10 запятая стоит? Ась?

айух - (с)

Изменено пользователем FailWare
Ссылка на комментарий
Поделиться на других сайтах

  • 0

./sources/action_public/misc/stats.php

function show_leaders()

Попробуёте обновить кеши в админке.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
./sources/action_public/misc/stats.php

function show_leaders()

Попробуёте обновить кеши в админке.

неа,я его перезалил и обновил кешы,тоже самое блин(

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Последнее значение пустует просто в массиве.

Любой символ сразу после запятой не считается разделителем (кроме кавычек).

Там же ясно было написано:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')

Ругался он на скобку.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Это что, предложение в запросе стереть скобку? В любом случае будет ошибка, если после запятой не будет числа и скобки потом, потому как IN. Можете конечно поспорить с Михаилом по этому поводу, но думаю это тщетно. :D

 

2 davidoff: есть конечно у меня смутное предположение - была группа, стояла как модератор на каком-то форуме. Потом вы её удалили. приведите что у вас в кешах group_cache и moderators. Это либо в таблице ibf_cache_store можно посмотреть, либо в удобном виде в Админцентре - настройки - управление кешем.

Изменено пользователем Sannis
Ссылка на комментарий
Поделиться на других сайтах

  • 0

FailWare

 

к примеру есть у вас массив:

 

[1

2

3

4]

 

в запросе идёт фнкция implode которая приводит этот массив к такой строке - "1,2,3,4"

 

А теперь представьте что в этом массиве по ошибке вместо 4-ки пусто (нет идентификатора, ну т.е. пробел например)

получается

[1

2

3

 

]

 

Функция приведёт к такой строке "1,2,3, "

получается запрос:

 

SELECT m.*, me.*
                    FROM ".SQL_PREFIX."members m
                       LEFT JOIN ".SQL_PREFIX."member_extra me ON (me.id=m.id)
                    WHERE m.mgroup IN (1,2,3, )
                    ORDER BY m.members_l_display_name

 

ну и соответственно сообщение об ошибке:

Сообщение сервера: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')

т.е. в этом месте "3, )"

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Song

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

Изменено пользователем FailWare
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.