Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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_Pdo - Fatal编程技术网

事务中的多个查询以及使用php提交/回滚

事务中的多个查询以及使用php提交/回滚,php,mysql,pdo,Php,Mysql,Pdo,假设我有以下三个mysql查询: SELECT customer_id FROM customers WHERE name = 'John' INSERT INTO quests_on (quest_id, name, quest_points) VALUES ('1', 'John', '15) UPDATE badges_on SET badge_owned = 'owned' WHERE quest_id = '1' 如何使用mysql事务来确保进行了所有更改,或者回滚更改。在php中使

假设我有以下三个mysql查询:

SELECT customer_id FROM customers WHERE name = 'John'
INSERT INTO quests_on (quest_id, name, quest_points) VALUES ('1', 'John', '15)
UPDATE badges_on SET badge_owned = 'owned' WHERE quest_id = '1'
如何使用mysql事务来确保进行了所有更改,或者回滚更改。在php中使用PDO扩展就足够了吗?只是需要澄清一下。我还想知道是否可以在事务中使用SELECT查询,以及事务是否可以采用不同的路径(例如SELECT查询中的值是否存在)


有关更多信息,请阅读

您还需要在mysql中使用支持事务的innodb引擎。好的,但这是否意味着我可以在该事务中设置条件,例如如果SELECT查询中没有结果,请运行此INSERTquery@PraneetSharma为什么不呢?您已经在使用PHP了。您可以测试任何查询的结果并更改程序流。
$db = new PDO($dsn, $user, $password);
$db->beginTransaction();
try {
  // do your queries here, using PDO and $db object
  $db->commit();
} catch (PDOException $e) {
  $db->rollback();
}