有一个查询
UPDATE users SET hash =: hash, num_try_incorrect_pass = 0
WHERE email =: email; SELECT * FROM users WHERE email =: email
首先执行UPDATE
下一个SELECT
如何通过一个请求执行此操作?
答案 0 :(得分:5)
如何使用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 ;
然后您可以通过这种方式执行这两个语句:
$stmt = $dbh->prepare("CALL ExecuteQueries($sEmail,$sHash)");
答案 1 :(得分:1)
我不确定你想要什么。
您希望在数据库上运行单个查询以更新并选择更新的行吗?如果是这样,就无法做到这一点。您应该考虑创建一个MySQL函数来更新并返回后一个查询的结果集。 Here's the docs on how to create functions and procedures with MySQL