使用原則1.2.4, 我無法解決在教條下使用「IF」MySQL指令。Doctrine 1.2控制流函數「IF」
我想這生成SQL代碼:
UPDATE mytable SET mytable.state = IF(mytable.state=0, 128, mytable.state)
但使用:
$stmt_update = Doctrine_Query::create()
->update('Mytable mytable')
->set('mytable.state', 'IF(mytable.state=0, 128, mytable.state)')
->execute();
下MySQL服務器的結果是: 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。
是如何使用IF與Doctrine 1.x?
IF與Doctrine 1的擴展是否可用? (像DoctrineExtensions/LIB/ DoctrineExtensions /查詢/ MySQL的/ IfElse.php) https://github.com/beberlei/DoctrineExtensions/blob/master/lib/DoctrineExtensions/Query/Mysql/IfElse.php
Conditional IF statement in a PHP Doctrine 1.2 SET statement是不可用的。