Maison > développement back-end > tutoriel php > Un exemple PHP analyse les compétences d'utilisation du traitement des transactions MySQL

Un exemple PHP analyse les compétences d'utilisation du traitement des transactions MySQL

墨辰丷
Libérer: 2023-03-31 06:02:02
original
2016 Les gens l'ont consulté

Cet article présente principalement des exemples PHP et analyse les compétences d'utilisation du traitement des transactions MySQL. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

L'exemple de cet article décrit comment PHP+Mysql implémente la fonction de transfert basée sur le traitement des transactions. Les détails sont les suivants :

<?php
  header("Content-Type:text/html;charset=utf-8");
  $mysqli=new mysqli("localhost","root","","test");
  if(mysqli_connect_errno())
  {
  printf("连接失败:%s<br>",mysqli_connect_error());
  exit();
  }
  $success=TRUE;
  $price=8000;
  $result=$mysqli->query("select cash from account where name=&#39;userA&#39;");
  while($row=$result->fetch_assoc())
  {
  $value=$row["cash"];
  echo $value;
  }
  $mysqli->autocommit(0);
  if($value>=$price){
  $result=$mysqli->query("UPDATE account set cash=cash-$price where name=&#39;userA&#39;");
  }else {
  echo &#39;余额不足&#39;;
  exit();
  }
  if(!$result or $mysqli->affected_rows!=1)
  {
  $success=FALSE;
  }
  $result=$mysqli->query("UPDATE account set cash=cash+$price where name=&#39;userB&#39;");
  if(!result or $mysqli->affected_rows!=1){
  $success=FALSE;
  }
  if($success)
  {
  $mysqli->commit();
  echo &#39;转账成功!&#39;;
  }else
  {
  $mysqli->rollback();
  echo "转账失败!";
  }
  $mysqli->autocommit(1);
  $query="select cash from account where name=?";
  $stmt=$mysqli->prepare($query);
  $stmt->bind_param(&#39;s&#39;,$name);
  $name=&#39;userA&#39;;
  $stmt->execute();
  $stmt->store_result();
  $stmt->bind_result($cash);
  while($stmt->fetch())
  echo "用户userA的值为:".$cash;
  $mysqli->close();
?>
Copier après la connexion

L'instruction SQL de la base de données est la suivante : <🎜. >

create table account{
 userID smallint unsigned not null auto_increment,
 name varchar(45) not null,
 cash decimal(9,2) not null,
 primary key(userID)
)type=InnoDB;
insert into account(name,cash) values (&#39;userA&#39;,&#39;2000&#39;);
insert into account(name,cash) values (&#39;userB&#39;,&#39;10000&#39;);
Copier après la connexion

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Explication graphique détaillée des paramètres et du filtrage des données en php

Base de données de classification du cache dans Cache php

Système de gestion de téléchargement de fichiers 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal