Doctrine_Connection_Mysql_Exception при сохранении строки с помощью Doctrine - PullRequest
1 голос
/ 07 августа 2011

У меня есть простая таблица.Это модель Изображения:

abstract class BaseImages extends Doctrine_Record
{
    public function setTableDefinition()
    {
        $this->setTableName('images');
        $this->hasColumn('id', 'integer', 4, array(
             'type' => 'integer',
             'length' => 4,
             'fixed' => false,
             'unsigned' => false,
             'primary' => true,
             'autoincrement' => true,
             ));
        $this->hasColumn('file', 'string', 45, array(
             'type' => 'string',
             'length' => 45,
             'fixed' => false,
             'unsigned' => false,
             'primary' => false,
             'notnull' => false,
             'autoincrement' => false,
             ));
        $this->hasColumn('order', 'integer', 4, array(
             'type' => 'integer',
             'length' => 4,
             'fixed' => false,
             'unsigned' => false,
             'primary' => false,
             'default' => '0',
             'notnull' => false,
             'autoincrement' => false,
             ));
    }

    public function setUp()
    {
        parent::setUp();
        $this->hasMany('AuthorsHasImages', array(
             'local' => 'id',
             'foreign' => 'images_id'));

        $this->hasMany('Banners', array(
             'local' => 'id',
             'foreign' => 'images_id'));

        $this->hasMany('BooksHasImages', array(
             'local' => 'id',
             'foreign' => 'images_id'));

        $this->hasMany('Collections', array(
             'local' => 'id',
             'foreign' => 'images_id'));

        $this->hasMany('IllustratorsHasImages', array(
             'local' => 'id',
             'foreign' => 'images_id'));

        $this->hasMany('MerchandisingHasImages', array(
             'local' => 'id',
             'foreign' => 'images_id'));
    }
}

Когда я использую:

$image = new Images();
$image->file = $name;
$image->save();

У меня есть следующая ошибка:

Неустранимая ошибка: Uncaught исключения 'Doctrine_Connection_Mysql_Exception'with message' SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'order, file) VALUES (' 0 ',' P8040001.JPG ')' в строке 1 в /Users/maurogadaleta/Sites/org.blackiebooks/phpinc/doctrine/Doctrine/Connection.php:1082 Трассировка стека: # 0 /Users/maurogadaleta/Sites/org.blackiebooks/phpinc/doctrine/Doctrine/Connection/Statement.php(269): Doctrine_Connection-> rethrowException (объект ((PDOException), Object (Doctrine_Connection_Statement)) # 1 /Users/maurogadaleta/Sites/org.blackiebooks/phpinc/doctrine/Doctrine/Connection.php(1042): Doctrine_Connection_Statement-> execute (Array) # 2 / Users / Surogaletaorg.blackiebooks / phpinc / doctrine / Doctrine / Connection.php (687): Doctrine_Connection-> exec ('INSERT INTO ima ...', Array) # 3 /Users/maurogadaleta/Sites/org.blackiebooks/phpinc/doctrine/Doctrine / Connection / UnitOfWork.php (647): Doctrine_ в /Users/maurogadaleta/Sites/org.blackiebooks/phpinc/doctrine/Doctrine/Connection.php в строке 1082

Кто-нибудь знает, почемуЯ получаю эту ошибку и что я могу сделать, чтобы решить проблему?

Ответы [ 2 ]

3 голосов
/ 01 октября 2011

использовать идентификатор цитирования;

$conn->setAttribute(Doctrine_Core::ATTR_QUOTE_IDENTIFIER, true);

http://www.doctrine -project.org / документация / ручной / 1_2 / Hu / конфигурации # Идентификатор кавычки

0 голосов
/ 09 августа 2011

Похоже, что Doctrine не заключает в кавычки имена столбцов, а порядок - это ключевое слово MySQL.Попробуйте переименовать столбец (или заставьте Doctrine процитировать его, если это возможно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...