Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择更新_Php_Mysql - Fatal编程技术网

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调用。回答:分别调用这两个查询。但是,即使可以一起调用它们,它也肯定不会如图所示工作,因为在一个查询中不能两次使用同一占位符名称