Кто разбирается в ошибках...помогите!

Главные вкладки

Аватар пользователя artcons artcons 26 сентября 2009 в 9:56

Давно пытаюсь найти как избавиться от этой ошибки:

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 'INNER JOIN node_access na ON na.nid = node.nid WHERE (na.grant_view >= 1 AND ((n' at line 1 query: INNER JOIN node_access na ON na.nid = node.nid WHERE (na.grant_view >= 1 AND ((na.gid = 0 AND na.realm = 'all') OR (na.gid = 0 AND na.realm = 'og_public'))) LIMIT 0, 200 in /home/a/artconru/public_html/includes/database.mysql.inc on line 174.

Может кто-нибудь знает как ее исправить, происходит она по видимому от модуля Organic Groups.

Комментарии

Аватар пользователя Stutzer Stutzer 26 сентября 2009 в 10:41

Поясняю. Судя по всему ошибка в синтаксисе SQL-запроса, который частично приведен в этой самой ошибке. А именно, пропущено AS вот в этом месте INNER JOIN node_access ... na ON. Т.е. правильно было бы так, как в моем первом комментарии.
Все, что вам нужно сделать — это провести полнотекстовый поиск по всем файлам кастомных модулей по фразе «INNER JOIN {node_access} na ON» или по любому другому отрывку из SQL-запроса, что в ошибке. Только следует иметь ввиду, что в ошибке выведен уже преобразованный запрос — в коде он выглядит по-дугому (с плэйсхолдерами для переменных и т.д.)

Аватар пользователя gorr gorr 26 сентября 2009 в 11:09

Stutzer, можно без AS писать. А Вот сам SELECT FROM почему-то отсутствует или текст ошибки не полностью приведен.

Аватар пользователя artcons artcons 26 сентября 2009 в 11:32

нашел в og.install

149 $sql = "SELECT DISTINCT(n.nid) FROM {node} n INNER JOIN {node_access} na ON n.nid = na.nid WHERE type != 'og' AND na.realm = 'og_group'";
$result = db_query($sql);

исправил на

149 $sql = "SELECT DISTINCT(n.nid) FROM {node} n INNER JOIN {node_access} AS na ON n.nid = na.nid WHERE type != 'og' AND na.realm = 'og_group'";
$result = db_query($sql);

жду...вроде пока не выскакивает

Аватар пользователя Stutzer Stutzer 26 сентября 2009 в 11:36

Да нет, тут похоже в другом проблема. Конфликты между модулями или что-то типа того. Выше я давал пару ссылочек.

Аватар пользователя artcons artcons 26 сентября 2009 в 11:59

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 'INNER JOIN node_access na ON na.nid = node.nid WHERE (na.grant_view >= 1 AND ((n' at line 1 query: INNER JOIN node_access na ON na.nid = node.nid WHERE (na.grant_view >= 1 AND ((na.gid = 0 AND na.realm = 'all') OR (na.gid = 0 AND na.realm = 'og_public'))) LIMIT 0, 200 in /home/a/artconru/public_html/includes/database.mysql.inc on line 174.

:Р неработает

Аватар пользователя artcons artcons 26 сентября 2009 в 12:13

эмпирическим путем проверено - когда аноним заходит в форму регистрации появляется сообщенные об ошибке

Аватар пользователя gorr gorr 26 сентября 2009 в 12:32

Еще раз напишу, что если текст ошибки приведен полностью, то в запросе отсутствует его начало - SELECT FROM {node} n.