Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: SQLSTATE[42000]: Syntax error or access violation: 1064... #17

Open
mazurva opened this issue Jul 10, 2013 · 3 comments
Open

Error: SQLSTATE[42000]: Syntax error or access violation: 1064... #17

mazurva opened this issue Jul 10, 2013 · 3 comments

Comments

@mazurva
Copy link

mazurva commented Jul 10, 2013

Сегодня при создании нового сайта обнаружил ошибку:

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 ...

Проблема оказалась в сложном префиксе таблицы, а именно он содержал дефис. Источником ошибки был код расширения, a именно строка 449 в файле ETaggableBehavior.php, но при анализе кода, я нашел строку 436 в которой была вставка кода {$this->getTagBindingTableName()} не обрамленная кавычками, после маленького вмешательства строчка стала выглядеть так:

'join' => "INNER JOIN `{$this->getTagBindingTableName()}` et ON t.{$this->tagTablePk} = et.{$this->tagBindingTableTagId} ",

а ошибка исчезла.

@creocoder
Copy link
Member

Это недопустимый фикс в данном ситуации, экранирующие кавычки у разных РСУБД разные.

@samdark Тут нужен CDbConnection::quoteTableName() на все таблицы.

@mazurva
Copy link
Author

mazurva commented Jul 10, 2013

Вам виднее, я просто указал самый быстрый вариант для моего случая(с MySQL), но абсолютно согласен что он не подойдет для других РСУБД. Хотя в этом же документе строчкой выше(строка 435, на github это строка 449):

'select' => "t.{$this->tagTableName} as `name`"

@creocoder
Copy link
Member

@mazurva Ну видите, как хорошо, одним тикетом двух зайцев ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants