0

こんにちは、null 値の挿入に問題があります。

このように phpmyadmin でテストするとうまくいきます: INSERT INTO all( id, album_id, album_picture_id, ) VALUES ('' style_id, style_picture_id175,null,null,null)

しかし、Doctrine2で挿入すると:

    $getAlbum = $this->doctrine->em->getRepository('models\Album')->findOneBy(array('id'=>175));
            $all = 新しいモデル\すべて;
            $all->setAlbumPicture(NULL);
            $all->setAlbum($getAlbum);

            $all->setStyle(NULL);
            $all->setStylePicture(NULL);
            $this->doctrine->em->persist($all);
            $this->doctrine->em->flush();

次のエラーが表示されます: [Sat Dec 01 14:24:36 2012] [error] [client 84.255.196.168] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You SQL 構文にエラーがあります。/home/hosting/easydrobe.com/data の「all (album_id, album_picture_id, style_id, style_picture_id) VALUES (175, NULL, ' at line 1'」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 /application/libraries/Doctrine/DBAL/Statement.php:131\nスタック トレース:\n#0 /home/hosting/easydrobe.com/data/application/libraries/Doctrine/DBAL/Statement.php(131): PDOStatement- >execute(NULL)\n#1 /home/hosting/easydrobe.com/data/application/libraries/Doctrine/ORM/Persisters/BasicEntityPersister.php(239): Doctrine\DBAL\Statement->execute()\n# 2 /home/hosting/easydrobe.

私のモデル: http://pastebin.com/vgq4eWky

何か案は?手伝ってくれてありがとう。

4

1 に答える 1

1

Allは予約済みキーワードです。次のように、エンティティ定義で引用する必要があります。

/**
 * @ORM\Table(name="`all`")
 * @ORM\Entity()
 */
class All
{
    // ... etc ...
}
于 2012-12-02T16:15:59.393 に答える