有一个查询
UPDATE users SET hash =: hash, num_try_incorrect_pass = 0
WHERE email =: email; SELECT * FROM users WHERE email =: email
首先执行 UPDATE
下一个 SELECT
如何通过一个请求做到这一点?
如何使用stored procedures?
如果您正在寻找从一个代码语句执行两个查询,您可以将它们定义为数据库中的存储过程。
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 函数来更新并返回后一个查询的结果集。这是有关如何使用 MySQL 创建函数和过程的文档