Maison  >  Article  >  développement back-end  >  Explication détaillée des méthodes couramment utilisées pour les opérations de transaction PHP mysqli

Explication détaillée des méthodes couramment utilisées pour les opérations de transaction PHP mysqli

墨辰丷
墨辰丷original
2018-05-19 10:07:433328parcourir

Cet article présente principalement les méthodes courantes d'opération des transactions PHP mysqli et analyse les techniques d'ouverture, de soumission, d'exécution, d'annulation, de fermeture et d'autres techniques d'implémentation de la transaction PHP mysqli sous forme d'exemples. Les amis dans le besoin peuvent s'y référer. 🎜>

Les exemples de cet article décrivent les méthodes courantes d'opérations de transaction PHP mysqli. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1,

//打开(true)或关闭(false)本次数据库连接的自动命令提交事务模式
//参数如果设置为 FALSE,则表示关闭 auto-commit。如果设置为 TRUE,则表示开启 auto-commit(提交任何等待查询)。
bool mysqli::autocommit ( bool $mode )

2,

//回退当前事务
bool mysqli::rollback ()

3,

//提交一个事务
bool mysqli::commit ()

4,

//关闭先前打开的数据库连接
bool mysqli::close ()

5,

//对数据库执行一次查询
//失败时返回 FALSE,通过mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回TRUE
//参数$resultmode可选。一个常量。可以是下列值中的任意一个:
//MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
//MYSQLI_STORE_RESULT(默认)
mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

Exemple de code :

<?php
$mysqli = new mysqli("127.0.0.1","root","111111","test");
if ($mysqli->connect_errno){
  echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}
//默认auto-commit 是打开的,可直接提交sql语句
$b1 = $mysqli->query("INSERT INTO test (id,name) values (0,&#39;000&#39;)");
//若要执行事务,先关闭auto-commit
//关闭 auto-commit
$mysqli->autocommit(false);
$res1 = $mysqli->query("INSERT INTO test (id,n1ame) values (1,&#39;111&#39;)");
$b2 = $mysqli->query("INSERT INTO test (id,name) values (2,&#39;222&#39;)");
//有一条失败则回滚,全部成功则提交
if(!$res1 || !$b2){
  echo &#39;回滚!&#39;;
  $mysqli->rollback();
} else {
  echo &#39;提交!&#39;;
  $mysqli->commit();
}
//若想再次自动提交非事务语句,要打开auto-commit
$mysqli->autocommit(true);
$b3 = $mysqli->query("INSERT INTO test (id,name) values (3,&#39;333&#39;)");
//关闭连接
$mysqli->close();
?>

Recommandations associées :

Méthode de requête par lots php+mysqli de données de plusieurs tables, phpmysqli interroge plusieurs tables_Tutoriel PHP

Méthode php+mysqli pour implémenter l'insertion, la mise à jour et la suppression par lots de données, tutoriel phpmysqli_PHP

Méthode php pour ajouter des données à la base de données à l'aide de mysqli , Tutoriel phpmysqli_PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn