Php 选择更新
有一个疑问Php 选择更新,php,mysql,Php,Mysql,有一个疑问 UPDATE users SET hash =: hash, num_try_incorrect_pass = 0 WHERE email =: email; SELECT * FROM users WHERE email =: email 首先执行更新 下一选择 如何在一个请求中执行此操作 我不知道你想要什么 是否要在数据库上运行单个查询以更新和选择更新的行?如果是这样,这是不可能的。您应该考虑创建一个MySQL函数来更新和返回带有后面查询的结果集。 我不知道你想要什么 是否要
UPDATE users SET hash =: hash, num_try_incorrect_pass = 0
WHERE email =: email; SELECT * FROM users WHERE email =: email
首先执行更新下一选择
如何在一个请求中执行此操作 我不知道你想要什么
是否要在数据库上运行单个查询以更新和选择更新的行?如果是这样,这是不可能的。您应该考虑创建一个MySQL函数来更新和返回带有后面查询的结果集。 我不知道你想要什么
是否要在数据库上运行单个查询以更新和选择更新的行?如果是这样,这是不可能的。您应该考虑创建一个MySQL函数来更新和返回带有后面查询的结果集。 使用
存储过程如何?
如果要从一个代码语句中执行两个查询,可以将它们定义为数据库中的存储过程
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)");
有关详细信息:如何使用
存储过程?
如果要从一个代码语句中执行两个查询,可以将它们定义为数据库中的存储过程
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)");
有关更多信息:这是两个您无法对其加边框的查询可能您正在查找
事务
?将其放入存储过程并使用pdo或mysqliSimple调用。答案:分别调用这两个查询。但即使您可以将它们一起调用,它也肯定不会如图所示工作,因为您不能在一个查询中使用同一占位符名称两次。我需要返回一个数组,查询一旦运行,这是两个您无法添加边框的查询可能您正在查找事务
?将其放入存储过程并使用pdo或mysqliSimple调用。回答:分别调用这两个查询。但是,即使可以一起调用它们,它也肯定不会如图所示工作,因为在一个查询中不能两次使用同一占位符名称