1

ユーザーの残高を増やす必要があるため、次のようにします。

Doctrine_Query::create()->from('User')->update('balance', 'balance + 0.15')->execute();

そして、「不明なコンポーネントエイリアス0」というエラーが発生しました。0 .15が原因だと思います。では、ユーザーのテーブルに SELECT クエリを追加せずに (DQL を使用して) 残高を更新して、残高を取得し、新しい残高を計算し、次のようなクエリを実行するにはどうすればよいですか?Doctrine_Query::create()->from('User')->update('balance', '?', $new_balance)->execute();

4

2 に答える 2

2

このソリューションはMySQLでうまく機能します!!!

Doctrine_Query::create()->update('Users')->set('balance', 'balance + "0.15"')->execute();
于 2010-04-19T09:16:54.173 に答える
1

あなたの仮定は正しいようです。Doctrine は0がテーブルのエイリアスであると考えています。使ってみましたset()か?

ドキュメントから:

$q = Doctrine_Query::create()
    ->update('Account')
    ->set('amount', 'amount + 200')
    ->where('id > 200');
// If you just want to set the amount to a value
$q->set('amount', '?', 500);
echo $q->getSqlQuery();

// UPDATE account
// SET amount = amount + 200
// WHERE id > 200
于 2010-04-19T09:07:29.640 に答える