SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.09.2011 17:59:46

unrealock
Участник
Зарегистрирован: 02.09.2011
Сообщений: 5

Помогите с ошибкой Syntax error or access violation: 1064

Помогите пожалуйста возникла ошибка: CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: Syntax error or access violation: 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 'lock, count(lock) as sum from tbl_products_values v LEFT JOIN tbl_catalog_relati' at line 1

В чем может быть проблема?


Комментарий модератора
Что делать в случае возникновения ошибки "CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: Syntax error or access violation" смотрите в статье 1064 You have an error in your SQL syntax

Неактивен

 

#2 02.09.2011 19:58:49

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Помогите с ошибкой Syntax error or access violation: 1064

Синтаксическая ошибка в запросе перед приведенным фрагментом. Покажите полностью запрос.

Неактивен

 

#3 06.09.2011 15:56:37

unrealock
Участник
Зарегистрирован: 02.09.2011
Сообщений: 5

Re: Помогите с ошибкой Syntax error or access violation: 1064

vasya написал:

Синтаксическая ошибка в запросе перед приведенным фрагментом. Покажите полностью запрос.

Я новичок что именно показать?

Неактивен

 

#4 06.09.2011 16:29:00

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Помогите с ошибкой Syntax error or access violation: 1064

SQL-запрос, который не удалось исполнить.

'lock, count(lock) as sum from tbl_products_values v LEFT JOIN tbl_catalog_relati' это лишь часть запроса.
Найдите в скриптах место где выполняется запрос и добавьте его вывод на экран в случае ошибки исполнения.

Неактивен

 

#5 06.09.2011 16:53:36

unrealock
Участник
Зарегистрирован: 02.09.2011
Сообщений: 5

Re: Помогите с ошибкой Syntax error or access violation: 1064

<?php
                if($this->beginCache('template_menu'.$_GET['parentsection'].$_GET['section'])) {
                //
                    foreach ($cat0 as $cat) {
                        $cat1 = Catalog::model()->findAllByAttributes(array('pid'=>$cat->id));
                        $li = '';
                        if ($cat1) {
                            $cur = 0;
                            $end = end($cat1);
                            foreach ($cat1 as $c1) {
                                if ($_GET['section']==$c1->url) {
                                    $li .= '<li class="cur'.(($end==$c1)?' end':'').'"><span>'.$c1->name.'</span></li>';
                                    $cur++;
                                } else {
                                    $li .= '<li'.(($end==$c1)?' class="end"':'').'><a href="'.$this->createUrl("/showcase/list",array('parentsection'=>$c1->parent->url,'section'=>$c1->url)).'">'.$c1->name.'</a></li>';
                                }
                            }
                        }
                        echo  '<li class="cat-type on-padding"><span><a href="'.$this->createUrl("/showcase/list",array('section'=>$cat->url)).'">'.$cat->name.'</a></span>'.(($li)?'<ul'.(($cur||$_GET['section']==$cat->url)?' style="display: block;"':'').'>'.$li.'</ul>':'').'</li>';
                    }
                //
                $this->endCache(); }
                $pages = Page::model()->catalogmenu()->posasc()->findAll();
                $pages_arr = array();
                foreach ($pages as $mpage) {
                    $parent=0;
                    $li = '';
                    if ($mpage->url==$_GET['url']) $parent++;
                    foreach ($mpage->childs as $child) {
                        if ($child->url==$_GET['url']) {
                            $parent++;
                            $li .= '<li class="cur"><a href="'.$this->createUrl('/page/content', array('url'=>$child->url)).'">'.$child->title.'</a></li>';
                        } else
                            $li .= '<li><a href="'.$this->createUrl('/page/content', array('url'=>$child->url)).'">'.$child->title.'</a></li>';
                       
                    }
                ?>
                <li class="title">
                    <span><?php echo $mpage->title; ?></span>
                    <ul<?php
                    //if (!$parent) echo ' style="display:none;"';
                    ?>>
                    <?php echo $li; ?>
                    </ul>
                </li>
                <?php

Неактивен

 

#6 06.09.2011 17:01:42

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Помогите с ошибкой Syntax error or access violation: 1064

Это не тот скрипт/фрагмент...

Неактивен

 

#7 06.09.2011 17:05:56

unrealock
Участник
Зарегистрирован: 02.09.2011
Сообщений: 5

Re: Помогите с ошибкой Syntax error or access violation: 1064

$filter = array();
    $ProductField=ProductField::model()->forOwner()->sort()->findAll();
    if ($ProductField) {
        foreach($ProductField as $field) {
            $sql = 'select  '.$field->varname.', count('.$field->varname.') as sum from {{products_values}} v'
            .' LEFT JOIN {{catalog_relation}} r ON (v.pr_id=r.pr_id)'
            .(($catalog->id)?'where cid = '.$catalog->id:'')
            .' GROUP BY '.$field->varname.'';
           
            $row = Yii::app()->db->createCommand($sql)->queryAll();
            $filter[$field->varname] = $row;
        }

Неактивен

 

#8 06.09.2011 20:24:14

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Помогите с ошибкой Syntax error or access violation: 1064

lock - ключевое слово. При использовании в качестве имени столбца его нужно брать в обратные кавычки, т.е.
select `lock`, count(`lock`) as sum from ...
или переименовать колонку.

Неактивен

 

#9 16.09.2011 17:34:38

unrealock
Участник
Зарегистрирован: 02.09.2011
Сообщений: 5

Re: Помогите с ошибкой Syntax error or access violation: 1064

vasya написал:

lock - ключевое слово. При использовании в качестве имени столбца его нужно брать в обратные кавычки, т.е.
select `lock`, count(`lock`) as sum from ...
или переименовать колонку.

Спасибо ошибку исправил.

Неактивен

 

#10 17.09.2011 05:30:41

ZicoRio
Завсегдатай
Зарегистрирован: 30.04.2009
Сообщений: 31

Re: Помогите с ошибкой Syntax error or access violation: 1064

Натыкался сам на эту же граблю - советую вообще не использовать зарегистрированных слов:
например - lok вместо lock.

Неактивен

 

#11 27.02.2017 13:55:00

Ramapriya
Участник
Зарегистрирован: 27.02.2017
Сообщений: 1

Re: Помогите с ошибкой Syntax error or access violation: 1064

Приветствую!

Переносил на сервер сайт, сделанный на Yupe CMS (на основе Yii), залил файлы сайта, дамп БД, в итоге на некоторых страницах появляется такая ошибка:

CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #33 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'tdtali_2.categoryRelation.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

страницы:
http://test.tdtali.ru/store/elektricheskie/skrepernye
http://test.tdtali.ru/site/lebedkiprice

и т.д.

Отредактированно Ramapriya (27.02.2017 13:55:45)

Неактивен

 

#12 27.02.2017 14:21:02

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2419

Re: Помогите с ошибкой Syntax error or access violation: 1064

Судя по тексту ошибки, MySQL-сервер на новой машинке настроен иначе, чем на старой.

https://dev.mysql.com/doc/refman/5.7/en … l_group_by

Для диагностики - сравните значение sql-запроса
SELECT @@sql_mode;
на старой машинке и на новой и напишите сюда оба значения.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson