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

IPB 2.1x & MySQL 5


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

Как Вы видите, пятая версия MySql набирает обороты.

 

До создания темы я читал форум, но решения своей проблемы не нашел.

 

Проблема появляется, когда запрос содержит больше чем одну таблицу в области FROM. Та же самая проблема случилась на моих трех являющихся главным серверах, когда я обновился с MySQL 4.1.12 к MySQL 5.0.15: я имел ошибку, говоря, что mysql не мог найти столбец X в где пункт.

 

Таким образом я сдлал быстрый фикс. Используйте это при на ваш страх и риск.

 

Начальный файл : sources/sql/mysql_queries.php

 

Найдите функцию msg_get_cc_users и замените ее НА:

		function msg_get_cc_users( $a )
	{

			return "SELECT m.mgroup_others, m.id, m.name, m.members_disable_pm, m.members_display_name, m.msg_total, m.view_pop, m.email_pm, m.language, m.email, me.vdirs, g.g_max_messages, g.g_use_pm FROM ".SQL_PREFIX."members m
					INNER JOIN ".SQL_PREFIX."groups g ON m.mgroup=g.g_id
					LEFT JOIN ".SQL_PREFIX."member_extra me ON (m.id=me.id)
					   WHERE LOWER(m.members_display_name) IN (".implode(",",$a['name_array']).")";
	}

 

После этого пользователи будут в состоянии сделать сообщения снова!

Следующий шаг в ips_kernel/class_db_mysql.php:

Найдите строчку "if ( $join['type'] == 'inner' )" в функции simple_select_with_join и замените ее содержимое:

if ( $join['type'] == 'inner' )
					{
						  # Join is inline
						  $from_array[]  = $join['from'];

						  if ( $join['where'] )
						  {
								  $where_array[] = $join['where'];
						 }

На

						if ( $join['type'] == 'inner' )
					{
							# Join is inner
							$tmp = " INNER JOIN ";
							foreach( $join['from'] as $tbl => $alias )
									$tmp .= $this->obj['sql_tbl_prefix'].$tbl.' '.$alias;
							if ( $join['where'] ) {
									$tmp .= " ON ( ".$join['where']." ) ";
							}
							$joinleft_array[] = $tmp;
							unset($tmp);

Это далеко от совершенства, но оно позволит Вам пснова олучать доступ к вашей admin панели.

©

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

Да надо просто запросы переписать. Тут где-то тема была.
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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