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( 'localhost', 'root', '', 'test' ); if (mysqli_connect_errno()) { throw new Exception('databases connect error:' .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, 'utf8mb4');
Datenbank erneut auswählen
Nachdem die Datenbank verbunden ist, können Sie die Datenbank auch erneut auswählen.
mysqli_select_db($mysqli, '数据库名');
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('周杰伦', 35, '男'), ('谢霆锋', 35, '男')" ); if (mysqli_affected_rows($mysqli) <= 0) { throw new Exception('databases insert error:' . 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('databases update error:' . 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('databases delete error:' . 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( 'localhost', 'root', '', 'test' ); if (mysqli_connect_errno()) { throw new Exception('databases connect error:' .mysqli_connect_error()); } mysqli_set_charset($mysqli, 'utf8mb4'); $result = mysqli_query($mysqli, "SELECT * FROM users" ); if (mysqli_affected_rows($mysqli) < 0) { throw new Exception('databases select error:' . 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!