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

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

墨辰丷
墨辰丷Original
2018-06-08 18:06:021970Durchsuche

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();
?>

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;);

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!

Stellungnahme:
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