Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Beispiel analysiert die Verwendungsfähigkeiten der MySQL-Transaktionsverarbeitung

PHP-Beispiel analysiert die Verwendungsfähigkeiten der MySQL-Transaktionsverarbeitung

墨辰丷
Freigeben: 2023-03-31 06:02:02
Original
2016 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich PHP-Beispiele vorgestellt und die Verwendungsfähigkeiten der MySQL-Transaktionsverarbeitung analysiert. Ich hoffe, dass er für alle hilfreich ist.

Das Beispiel in diesem Artikel beschreibt, wie PHP+Mysql die Übertragungsfunktion basierend auf der Transaktionsverarbeitung wie folgt implementiert:

<?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();
?>
Nach dem Login kopieren

Die Datenbank-SQL-Anweisung lautet wie folgt:

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;);
Nach dem Login kopieren

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Verwandte Empfehlungen:

Detaillierte grafische Erläuterung der Parameter und Datenfilterung in PHP

Cache-Klassifizierungsdatenbank in PHP-Cache

PHP-Datei-Upload-Verwaltungssystem

Das obige ist der detaillierte Inhalt vonPHP-Beispiel analysiert die Verwendungsfähigkeiten der MySQL-Transaktionsverarbeitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage