Давно пытаюсь найти как избавиться от этой ошибки:
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.
Комментарии
INNER JOIN node_access AS na ON
можно пояснить...
Поясняю. Судя по всему ошибка в синтаксисе SQL-запроса, который частично приведен в этой самой ошибке. А именно, пропущено AS вот в этом месте INNER JOIN node_access ... na ON. Т.е. правильно было бы так, как в моем первом комментарии.
Все, что вам нужно сделать — это провести полнотекстовый поиск по всем файлам кастомных модулей по фразе «INNER JOIN {node_access} na ON» или по любому другому отрывку из SQL-запроса, что в ошибке. Только следует иметь ввиду, что в ошибке выведен уже преобразованный запрос — в коде он выглядит по-дугому (с плэйсхолдерами для переменных и т.д.)
Беру свои слова обратно — AS не обязательно указывать.
Решение, кажется, должно быть здесь или, в крайнем случае, где-то здесь
Stutzer, можно без AS писать. А Вот сам SELECT FROM почему-то отсутствует или текст ошибки не полностью приведен.
нашел в 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);
жду...вроде пока не выскакивает
А это причем тут? Ошибка то в другом запросе выдается.
Да нет, тут похоже в другом проблема. Конфликты между модулями или что-то типа того. Выше я давал пару ссылочек.
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.
:Р неработает
эмпирическим путем проверено - когда аноним заходит в форму регистрации появляется сообщенные об ошибке
Еще раз напишу, что если текст ошибки приведен полностью, то в запросе отсутствует его начало - SELECT FROM {node} n.
и как это решается?
Надо найти где формируется этот запрос и поправить.
node_access table not always added in
тупик?