Heim Backend-Entwicklung PHP-Tutorial PHP-MySQL- und MySQL-Transaktionsnutzung und Betriebsvergleich

PHP-MySQL- und MySQL-Transaktionsnutzung und Betriebsvergleich

May 26, 2017 pm 04:12 PM
mysql mysqli php

Erstens ist die MySQL-Verbindung eine permanente Verbindung, während MySQL eine nicht permanente Verbindung ist. Was bedeutet es? Immer wenn die MySQL-Verbindung zum zweiten Mal verwendet wird, wird ein neuer Prozess erneut geöffnet, während MySQL nur denselben Prozess verwendet, was den Druck auf der Serverseite erheblich verringern kann

MySQL kapselt Transaktionen usw. Einige fortgeschrittene Operationen kapseln auch viele verfügbare Methoden im DB-Operationsprozess.

Die häufigste Anwendung sind MySQL-Transaktionen.

Zum Beispiel das folgende Beispiel:

Der Code lautet wie folgt:

$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli->autocommit(false);//开始事物
$mysqli->query($sql1);
$mysqli->query($sql2);
if(!$mysqli->errno){
  $mysqli->commit();
  echo 'ok';
}else{
 echo 'err';
  $mysqli->rollback();
}
Nach dem Login kopieren

In PHP hat MySQL die MySQL-Transaktion gut gekapselt damit verbundene Arbeiten. Das folgende Beispiel:

Der Code lautet wie folgt:

$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'";
$sql2 = "update ScoreDetail  set FScore = 300 where ID= '123456'";
$sql3 = "insert into  ScoreDetail ID,Score) values ('123456',60)";
$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli->autocommit(false); // 开始事务
$mysqli->query($sql1);
$mysqli->query($sql2);
if (!$mysqli->errno) {
 $mysqli->commit();
 echo 'ok';
} else {
 echo 'err';
 $mysqli->rollback();
}
Nach dem Login kopieren

Hier verwenden wir die PHP-MySQL-Funktionsreihe, um Transaktionen durchzuführen.

Der Code lautet wie folgt:

$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'";
$sql2 = "update ScoreDetail  set FScore = 300 where ID= '123456'";
$sql3 = "insert into  ScoreDetail ID,Score) values ('123456',60)";
$conn = mysql_connect('localhost','root','');
mysql_select_db('DB_Lib2Test');
mysql_query('start transaction');
//mysql_query('SET autocommit=0');
mysql_query($sql1);
mysql_query($sql2);
if (mysql_errno()) {
 mysql_query('rollback');
 echo 'err';
} else {
 mysql_query('commit');
 echo 'ok';
}
// mysql_query('SET autocommit=1');
// mysql_query($sql3);
Nach dem Login kopieren

Hier ist zu beachten, dass

MyISAM: keine Transaktionen unterstützt und für schreibgeschützte Programme verwendet wird um die Leistung zu verbessern
InnoDB: Unterstützt ACID-Transaktionen, Sperren auf Zeilenebene und Parallelität
Berkeley DB: unterstützt Transaktionen
Noch etwas zu beachten: Das Standardverhalten von MySQL besteht darin, nach jeder SQL-Anweisung eine COMMIT-Anweisung auszuführen ausgeführt, wodurch jede einzelne Anweisung effektiv in eine Transaktion umgewandelt wird.

Aber wenn wir Transaktionen verwenden müssen, müssen wir oft mehrere SQL-Anweisungen ausführen. Dazu müssen wir das Autocommit-Attribut von MySQL manuell auf 0 setzen, was standardmäßig 1 ist.

Verwenden Sie gleichzeitig die START TRANSACTION-Anweisung, um explizit eine Transaktion zu eröffnen. Wie das Beispiel oben.

Was sind die Konsequenzen, wenn Sie dies nicht tun?

Wir werden die Kommentare //mysql_query(‘SET autocommit=0′); und // mysql_query($sql3); im zweiten Codeabschnitt oben entfernen und dann ausführen.

Zu diesem Zeitpunkt wird mysql_query($sql3) bei der Ausführung nicht in die Datenbank eingefügt.

Wenn wir den Kommentar // mysql_query(‘SET autocommit=1′); entfernen, wird mysql_query($sql3); erfolgreich ausgeführt.

Normalerweise wird eine Transaktion abgeschlossen, wenn eine COMMIT- oder ROLLBACK-Anweisung ausgeführt wird, aber einige DDL-Anweisungen lösen implizit COMMIT aus.

Zum Beispiel die folgende Anweisung

ALTER FUNCTION
ALTER PROCEDURE
ALTER TABLE
BEGIN
CREATE DATABASE
CREATE FUNCTION
CREATE INDEX
VERFAHREN ERSTELLEN
TABELLE ERSTELLEN
DATENBANK DROP
DROP-FUNKTION
INDEX DROP
TABELLE UMBENENNEN
TABELLE ABZÜHLEN
AUTOCOMMIT=1 SETZEN
TRANSAKTION STARTEN

Nehmen wir ein anderes Beispiel.

Der Code lautet wie folgt:

Wenn im obigen Beispiel $sql2 nicht ausgeführt werden kann, wird $sql1 trotzdem ausgeführt. Warum?

Denn wenn die Umbenennung ausgeführt wird, führt MySQL standardmäßig zuerst das Festschreiben und dann die Umbenennung aus.

$sql1 = 'create table ScoreDetail_new(id int)';
$sql2 = 'rename table ScoreDetail to ScoreDetail_bak';
$sql3  = 'rename table ScoreDetail_new to ScoreDetail';
$mysqli = new mysqli('localhost','root','','DB_Lib2Test');
$mysqli->autocommit(false);//开始事物
$mysqli->query($sql1);
$mysqli->query($sql2);
$mysqli->query($sql3);
if (!$mysqli->errno) {
 $mysqli->commit();
 echo 'ok';
} else {
 echo 'err';
 $mysqli->rollback();
}
Nach dem Login kopieren
Hinweis

Nur ​​Datentabellen vom Typ INNODB und BDB in MYSQL können die Transaktionsverarbeitung unterstützen! Andere Typen werden nicht unterstützt!

***: Im Allgemeinen ist die Standard-Engine der MYSQL-Datenbank MyISAM. Diese Engine unterstützt keine Transaktionen! Wenn Sie möchten, dass MYSQL Transaktionen unterstützt, können Sie es manuell selbst ändern:

Die Methode ist wie folgt: 1. Ändern Sie die Datei c:/appserv/mysql/my.ini, suchen Sie skip-InnoDB und fügen Sie # hinzu. vorne und speichern Sie die Datei.

2. Geben Sie während des Betriebs „services.msc“ ein, um den MySQL-Dienst neu zu starten.

3. Gehen Sie zu phpmyadmin, mysql->show-Engines (oder führen Sie mysql->show-Variablen wie „have_%“ aus) und überprüfen Sie InnoDB auf JA, was bedeutet, dass die Datenbank InnoDB unterstützt.

Das bedeutet, dass Transaktionstransaktionen unterstützt werden.

Das obige ist der detaillierte Inhalt vonPHP-MySQL- und MySQL-Transaktionsnutzung und Betriebsvergleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

PHP und Python: Vergleich von zwei beliebten Programmiersprachen PHP und Python: Vergleich von zwei beliebten Programmiersprachen Apr 14, 2025 am 12:13 AM

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

Der aktuelle Status von PHP: Ein Blick auf Webentwicklungstrends Der aktuelle Status von PHP: Ein Blick auf Webentwicklungstrends Apr 13, 2025 am 12:20 AM

PHP bleibt in der modernen Webentwicklung wichtig, insbesondere in Content-Management- und E-Commerce-Plattformen. 1) PHP hat ein reichhaltiges Ökosystem und eine starke Rahmenunterstützung wie Laravel und Symfony. 2) Die Leistungsoptimierung kann durch OPCACHE und NGINX erreicht werden. 3) Php8.0 führt den JIT -Compiler ein, um die Leistung zu verbessern. 4) Cloud-native Anwendungen werden über Docker und Kubernetes bereitgestellt, um die Flexibilität und Skalierbarkeit zu verbessern.

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

PHP: Die Grundlage vieler Websites PHP: Die Grundlage vieler Websites Apr 13, 2025 am 12:07 AM

Die Gründe, warum PHP für viele Websites der bevorzugte Technologie -Stack ist, umfassen die Benutzerfreundlichkeit, die starke Unterstützung der Community und die weit verbreitete Verwendung. 1) Einfach zu erlernen und zu bedienen, geeignet für Anfänger. 2) eine riesige Entwicklergemeinschaft und eine reichhaltige Ressourcen haben. 3) in WordPress, Drupal und anderen Plattformen häufig verwendet. 4) Integrieren Sie eng in Webserver, um die Entwicklung der Entwicklung zu vereinfachen.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

Php gegen andere Sprachen: Ein Vergleich Php gegen andere Sprachen: Ein Vergleich Apr 13, 2025 am 12:19 AM

PHP eignet sich für die Webentwicklung, insbesondere für die schnelle Entwicklung und Verarbeitung dynamischer Inhalte, ist jedoch nicht gut in Anwendungen auf Datenwissenschaft und Unternehmensebene. Im Vergleich zu Python hat PHP mehr Vorteile in der Webentwicklung, ist aber nicht so gut wie Python im Bereich der Datenwissenschaft. Im Vergleich zu Java wird PHP in Anwendungen auf Unternehmensebene schlechter, ist jedoch flexibler in der Webentwicklung. Im Vergleich zu JavaScript ist PHP in der Back-End-Entwicklung präziser, ist jedoch in der Front-End-Entwicklung nicht so gut wie JavaScript.

See all articles