Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запрос c JOIN под MySQL 5, переписать запрос с MySQL 4 под MySQL 5 
:(
    Опции темы
Alex_B
Дата 15.5.2007, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



Здравствуйте, 

При переезде c MySQL 4 на MySQL 5 возникла ошибка:
Unknown column 'b.id' in 'on clause'

Вот тут написано как нужно изменить запрос что бы её устранить
http://bugs.mysql.com/bug.php?id=27777


Т.е. нужно поставить где-то скобки.

Пожалуйста помогите изменить следующий ниже код, что бы он работал под MySQL 5:
Код

 $rel_query = 'SELECT *'
                       . ' FROM ' . PMA_backquote($cfgRelation['relation'])
                       . ' WHERE ' . $from . '_db   = \'' . PMA_sqlAddslashes($db) . '\''
                       . ' AND ' . $to   . '_db   = \'' . PMA_sqlAddslashes($db) . '\''
                       . ' AND ' . $from . '_table IN ' . $in_know
                       . ' AND ' . $to   . '_table IN ' . $in_left;
            PMA_DBI_select_db($cfgRelation['db'], $dbh);
            $relations = @PMA_DBI_query($rel_query, $dbh);
            PMA_DBI_select_db($db, $dbh);
            while ($row = PMA_DBI_fetch_assoc($relations)) {
                $found_table                = $row[$to . '_table'];
                if (isset($tab_left[$found_table])) {
                    $fromclause             .= "\n" . ' LEFT JOIN '
                                            . PMA_backquote($row[$to . '_table']) . ' ON '
                                            . PMA_backquote($row[$from . '_table']) . '.'
                                            . PMA_backquote($row[$from . '_field']) . ' = '
                                            . PMA_backquote($row[$to . '_table']) . '.'
                                            . PMA_backquote($row[$to . '_field']) . ' ';
                    $tab_know[$found_table] = $found_table;
                    $tab_left               = PMA_arrayShort($tab_left, $found_table);
                }
            } // end while


Насколько я понял все дело в LEFT JOIN.

Спасибо.



Это сообщение отредактировал(а) Wowa - 15.5.2007, 09:36
PM MAIL   Вверх
skyboy
Дата 15.5.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



а нельзя сделать вывод переменной $rel_query? или предлагается доопределить недостающие переменные и функции, а потом самому сгенерировать?

Добавлено через 42 секунды
Цитата(skyboy @  15.5.2007,  10:01 Найти цитируемый пост)
а нельзя сделать вывод переменной $rel_query?

и скопировать вывод сюда, на форум. естественно.
PM MAIL   Вверх
igorold
Дата 15.5.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



Конечно, лучше смотреть сгенерированный запрос без переменных, тем более мы не можем догадаться, что они содержат.
И конечно мы должны быть уверены, что в таблице b есть поле id


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Alex_B
Дата 15.5.2007, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



skyboy, igorold, большое спасибо за участие.


Проблема в том, что я даже не уверен что проблема в этом скрипте...
Я не знаю как посмотреть какой непосредственно идет запрос, я только знаю ошибку и путь решения.
Сейчас вижу что найти решение в одиночку мне не удастся - на Битриксе решился многих функций после принудительного перезда на MySQL 5. Немогу же я в одиночку все запросы там попеременять :(

Может, у кого была проблема, может пропатчить как-то можно?
(если кому это о чем-то говорит то нужен новый модуль iblock)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0431 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.