mysql - 使用 Doctrine 保存行时 Doctrine_Connection_Mysql_Exception

标签 mysql orm doctrine php-5.3

我有一个简单的表格。这是模型图片:

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();

我有以下错误:

Fatal error: Uncaught exception 'Doctrine_Connection_Mysql_Exception' with message '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 'order, file) VALUES ('0', 'P8040001.JPG')' at line 1' in /Users/maurogadaleta/Sites/org.blackiebooks/phpinc/doctrine/Doctrine/Connection.php:1082 Stack trace: #0 /Users/maurogadaleta/Sites/org.blackiebooks/phpinc/doctrine/Doctrine/Connection/Statement.php(269): Doctrine_Connection->rethrowException(Object(PDOException), Object(Doctrine_Connection_Statement)) #1 /Users/maurogadaleta/Sites/org.blackiebooks/phpinc/doctrine/Doctrine/Connection.php(1042): Doctrine_Connection_Statement->execute(Array) #2 /Users/maurogadaleta/Sites/org.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_ in /Users/maurogadaleta/Sites/org.blackiebooks/phpinc/doctrine/Doctrine/Connection.php on line 1082

有谁知道为什么我会收到此错误以及我可以采取什么措施来解决此问题?

最佳答案

使用标识符引号;

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

http://www.doctrine-project.org/documentation/manual/1_2/hu/configuration#identifier-quoting

关于mysql - 使用 Doctrine 保存行时 Doctrine_Connection_Mysql_Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6973934/

相关文章:

php - Symfony 2/Doctrine 用户定义的 DQL 函数参数有字符串长度限制吗?

php - SQL:如何选择总计为特定值的行

orm - 数据映射器和存储库之间到底有什么区别?

python - SQLAlchemy 过滤器总是返回 false

javascript - Sequelize : Where should these methods reside

php - 无法在 Symfony2 "Could not find any fixtures to load"中加载固定装置

php - 错误 Symfony Doctrine PostgreSQL : SQLSTATE[42703]: Undefined column: 7 ERROR

php - 社交网络 facebook、myspace 等社交网络的用户操作

mysql - MYSQL 中的 COALESCE 函数与 select 出现错误

mysql - MySQL 的奇怪问题,结果意外