MySQL で単一のクエリを使用して更新する前に、行の ID を選択する解決策を見つけました。
UPDATE data_table
SET is_active = 0
WHERE token = 'some_token'
AND is_active = 1
AND @id := id;
SELECT @id;
しかし、Doctrine を使用して同じことを行う方法を見つけたいと思います。私は試した :
$pdo = Doctrine_Manager::getInstance()->getCurrentConnection();
$res = $pdo->execute("
UPDATE data_table
SET is_active = 0
WHERE token = 'some_token'
AND is_active = 1
AND @id := id;
SELECT @id;
")->fetchAll();
しかし、私は得るだけでPDOException: SQLSTATE[HY000]: General error
、回避策は見つかりません...
何か案は ?
ここからの解決策に基づいて、私は答えを見つけました:
Doctrine_Manager::getInstance()->getCurrentConnection()->standaloneQuery("
UPDATE data_table
SET is_active = 0
WHERE token = 'some_token'
AND is_active = 1
AND @id := id;
");
$data = DataTable::getInstance()->createQuery('d')->where('id = @id')->fetchOne();