0

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();
4

0 に答える 0