Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der Grundoperationen des Mysqli-CURD-Lernens und der Entwicklung

Zusammenfassung der Grundoperationen des Mysqli-CURD-Lernens und der Entwicklung

齐天大圣
齐天大圣Original
2020-05-04 14:56:521483Durchsuche

Seit PHP 5.5 wurde die MySQL-Erweiterung vollständig abgeschafft und es wird offiziell empfohlen, stattdessen MySQLI oder PDO zu verwenden. In diesem Artikel geht es hauptsächlich um einige grundlegende Operationen von MySQL. Es gibt zwei Schreibstile mit MySQL: den Objektstil und den funktionalen Stil. Nachfolgend zeigen wir nur den funktionalen Schreibstil.

Datenbankverbindung

Sie müssen zuerst eine Verbindung zur Datenbank herstellen. Bevor wir eine Datenverbindung herstellen, müssen wir im Allgemeinen das Datenbankkonto, das Kennwort, die Portnummer und den Datenbanknamen vorbereiten.

Aus Netzwerkgründen oder anderen Gründen ist es oft unmöglich, eine Verbindung zur Datenbank herzustellen, daher müssen wir den Verbindungsfehler beheben.

<?php
// 数据库连接
$mysqli = mysqli_connect(
   &#39;localhost&#39;,
   &#39;root&#39;,
   &#39;&#39;,
   &#39;test&#39;
);

if (mysqli_connect_errno()) {
   throw new Exception(&#39;databases connect error:&#39;
       .mysqli_connect_error());
}

// ...一些数据库操作
// 关闭数据库资源
mysqli_close($mysqli);

Legen Sie den Zeichensatz fest

Legen Sie den Zeichensatz mit mysqli_set_charset(); fest

Derzeit verwenden wir hauptsächlich utf8mb4 für Der Zeichensatz unterstützt 4-Byte-Zeichen. Es unterstützt einige Emoji-Zeichen. Wenn Sie keine 4-Byte-Zeichen unterstützen müssen, können Sie natürlich auch utf8 verwenden, da es mehr Platz bietet.

mysqli_set_chartset($mysqli, &#39;utf8mb4&#39;);

Datenbank erneut auswählen

Nachdem die Datenbank verbunden ist, können Sie die Datenbank auch erneut auswählen.

mysqli_select_db($mysqli, &#39;数据库名&#39;);

CURD-Operation

mysqli_query(): Führen Sie eine Operation in der Datenbank aus. DDL, DQL und DML werden alle unterstützt.

mysqli_affected_rows(): Ermittelt die Anzahl der betroffenen Datensatzzeilen.

Datenoperation hinzufügen

mysqli_query($mysqli,
   "INSERT INTO users(username, age, sex)
               VALUES(&#39;周杰伦&#39;, 35, &#39;男&#39;),
                      (&#39;谢霆锋&#39;, 35, &#39;男&#39;)"
);

if (mysqli_affected_rows($mysqli) <= 0) {
   throw new Exception(&#39;databases insert error:&#39;
       . mysqli_error($mysqli));
}

Datenoperation ändern

Hier gibt es einen Punkt zu beachten: Der von mysqli_affected_rows zurückgegebene Wert ist 0. Es werden genau dieselben Informationen wie beim letzten Mal aktualisiert, was sehr häufig vorkommt. Beispielsweise wird beim Ändern mehrmals hintereinander auf die Schaltfläche „Ändern“ geklickt. Dies bedeutet jedoch nicht, dass ein Problem mit dem Programmcode vorliegt. Daher sollte die Rückgabe von 0 im Gegensatz zum Neuzugang auch ein Erfolgsstatus sein.

mysqli_query($mysqli,
   "UPDATE users SET age=40 WHERE user_id = 1"
);

if (mysqli_affected_rows($mysqli) < 0) {
   throw new Exception(&#39;databases update error:&#39;
       . mysqli_error($mysqli));
}

Datenlöschvorgang

Hinweis: Bei Änderungs- und Löschvorgängen müssen Where-Bedingungen hinzugefügt werden , andernfalls werden die Daten der gesamten Tabelle geändert, mit katastrophalen Folgen (Datenbank löschen und weglaufen o(╯□╰)o).

mysqli_query($mysqli,
   "Delete FROM users  WHERE user_id = 100"
);

if (mysqli_affected_rows($mysqli) <= 0) {
   throw new Exception(&#39;databases delete error:&#39;
       . mysqli_error($mysqli));
}

Abfragevorgang

Wenn mysqli_query eine Abfrageanweisung ausführt, gibt diese Funktion die Ergebnismenge von mysqli_result zurück.

mysqli_fetch_all() ruft alle Daten aus der Ergebnismenge ab. Der zweite Parameter dieser Funktion kann das Format der zurückgegebenen Daten angeben. Dies sind:

  • MYSQLI_NUM: Gibt das Indexarray zurück

  • MYSQLI_ASSOC: Gibt das assoziative Array zurück

  • MYSQLI_BOTH: Sowohl Indexarray als auch assoziatives Array

Beachten Sie außerdem, dass Sie nach Abschluss der Operation für die Ergebnismenge daran denken müssen, die Ergebnismengenressourcen zu zerstören.

// 数据库连接
$mysqli = mysqli_connect(
   &#39;localhost&#39;,
   &#39;root&#39;,
   &#39;&#39;,
   &#39;test&#39;
);
if (mysqli_connect_errno()) {
   throw new Exception(&#39;databases connect error:&#39;
       .mysqli_connect_error());
}
mysqli_set_charset($mysqli, &#39;utf8mb4&#39;);
$result = mysqli_query($mysqli,
   "SELECT * FROM users"
);
if (mysqli_affected_rows($mysqli) < 0) {
   throw new Exception(&#39;databases select error:&#39;
       . mysqli_error($mysqli));
}
$users = mysqli_fetch_all($result, MYSQLI_ASSOC);
// 销毁结果集资源
mysqli_free_result($result);
// 关闭数据库资源
mysqli_close($mysqli);

Das Obige ist die grundlegende Funktionsweise von Mysqli, eine Zusammenfassung des persönlichen tatsächlichen Lernens und der persönlichen Entwicklung, willkommen zur Diskussion!

Das obige ist der detaillierte Inhalt vonZusammenfassung der Grundoperationen des Mysqli-CURD-Lernens und der Entwicklung. 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