2009-05-20 2 views
2

生成: - 「通常の野菜と肉汁添えヨークシャープディングの打者にソーセージを備えた伝統的な英国料理、」更新テキストフィールドは、私は、たとえば以下のテキスト言わ含まテキストフィールド持つ例外

このテキストフィールドは、そのIDを使用してアイテムレコードを単純に更新する形式です。私がテキストフィールドの一部を編集し、 "とグレービー"を置き換えた場合。 "humous"と。今やテキストフィールドには、

が含まれています。「ヨーグルトプディングバッターにソーセージを入れた伝統的なイギリス料理。誰もが興味を持っている場合、私はCodeIgniterの1.7.0にフック教義1.0.6を使用してい

Fatal error: Uncaught exception 'Doctrine_Query_Exception' with message 'Unknown component alias humous' in C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php:780 Stack trace: C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php(767): Doctrine_Query_Abstract->getQueryComponent('humous') C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Set.php(58): Doctrine_Query_Abstract->getAliasDeclaration('humous') C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php(2092): Doctrine_Query_Set->parse('i.details = 'A ...') C:\Projects\nitrous\lightweight\system\database\Doctrine\Query.php(1058): Doctrine_Query_Abstract->_processDqlQueryPart('set', Array) C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php(971): Doctrine_Query->getSqlQuery(Array) C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php(1030): Doctrine_Query_Abstract->_execute(Array) C:\Projects\nitrous\lightweight\system\appl in C:\Projects\nitrous\lightweight\system\database\Doctrine\Query\Abstract.php on line 780

- :

は、私は次の例外を取得します。次のように実際に更新を実行し

私の教義のクエリが見えます: -

public function updateItems($id, $arrayItem) { 
    $query = new Doctrine_Query(); 
    $query->update('Item i'); 

    foreach($arrayItem as $key => $value) { 
     $query->set('i.'.$key, "'".$value."'"); 
    } 

    $query->where('i.id = ?', $id); 
    return $query->execute(); 
} 

私は文字列全体「ヨークシャープディングバッターでソーセージを備えた伝統的な英国料理を交換した場合、通常の野菜添えので、これは奇妙なようです恥ずかしがり屋 "単に "テスト"のように全く違うものでは、例外をスローせず、うまく動作します。これは私を困惑させます...それはDoctrineのバグですか、何かを見逃しましたか?

答えて

2

Doctrineは

あなたが「humous」含む「humous」、ない長い文字列にそれを与えている
  1. 、および「humous」のデータが、エイリアスではないことを
  2. を考えていることは明らかです。

私はあなたがあなたがしていると思っているデータ文字列をやっているのか疑いがあります。それが生成する実際のSQLをダンプするための設定がDoctrineにありますか?

+0

お詫び申し上げます、これは以下のコメントです(私は新しいことを私に許しています!) - 私はDoctrineとは何かがあると思っています。 blahはエイリアスとして認識されます。 – user110001

0

私自身の質問に対する解決策を見つけました。これはDoctrine 1.0.6の既知のバグです。私はDoctrine 1.1.1にアップグレードしました。これは問題を解決したようです。

Doctrineのさまざまなバージョンを試してみることで、この問題が解決されるかどうかを確認することもできます。もしあなたがそうしたら、人に答えてくれてありがとう。

関連する問題