Doctrine 1.2.4を使用すると、 Doctrineの "IF" MySQL命令を使用して解決できません。Doctrine 1.2コントロールフロー関数 "IF"
私は、このSQLコードを生成します:
UPDATE mytable SET mytable.state = IF(mytable.state=0, 128, mytable.state)
しかし、使用して:MySQLサーバの下
$stmt_update = Doctrine_Query::create()
->update('Mytable mytable')
->set('mytable.state', 'IF(mytable.state=0, 128, mytable.state)')
->execute();
結果は次のとおりです。 mytable.state = IF(mytable.state)
$stmt_update>getDql(); // 'UPDATE Mytable mytable SET mytable.state = IF(mytable.state=0, 128, mytable.state)'
$stmt_update->getSqlQuery(); // 'UPDATE mytable SET mytable.state = IF(mytable.state)'
getSqlQuery()メソッドは、Mysqlを呼び出すために使用されますが、誤った文のSQLを使用しています。
Doctrine 1.xでIFを使用する方法はありますか?
http://groups.google.com/group/doctrine-user/browse_thread/thread/3faa518645e32eda%23&usg=AFQjCNEuqznC25z1EAzF4NIcfln8VG_Brg これは現在DQLではサポートされていません。
Doctrine 1とのIFの拡張機能はありますか? https://github.com/beberlei/DoctrineExtensions/blob/master/lib/DoctrineExtensions/Query/Mysql/IfElse.php
Conditional IF statement in a PHP Doctrine 1.2 SET statement(DoctrineExtensions/LIB/ DoctrineExtensions /クエリ/ MySQLの/ IfElse.phpように)使用できません。