Перейти к контенту
  • 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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