クエリがあります
UPDATE users SET hash =: hash, num_try_incorrect_pass = 0
WHERE email =: email; SELECT * FROM users WHERE email =: email
最初に UPDATE を実行
次の SELECT
1回のリクエストでこれを行う方法は?
使用方法stored procedures?
1 つのコードステートメントから両方のクエリを実行することを探している場合は、それらをデータベース内のストアド プロシージャとして定義できます。
DELIMITER //
CREATE PROCEDURE ExecuteQueries(IN pEmail VARCHAR(50),
IN pHash VARCHAR(60))
BEGIN
UPDATE users SET hash=pHash, num_try_incorrect_pass = 0 WHERE email = pEmail;
SELECT * FROM users WHERE email = pEmail;
END //
DELIMITER ;
次に、この方法で php コードを介してこれらのステートメントの両方を実行できます。
$stmt = $dbh->prepare("CALL ExecuteQueries($sEmail,$sHash)");
私はあなたが何を望んでいるのか分かりません。
データベースで単一のクエリを実行して、更新された行の更新と選択の両方を行いたいですか? もしそうなら、これはできません。後者のクエリで結果セットを更新して返す MySQL 関数の作成を検討する必要があります。MySQL で関数とプロシージャを作成する方法に関するドキュメントは次のとおりです。