Heim >Backend-Entwicklung >PHP-Tutorial >Zusammenfassung der Grundkenntnisse für PHP+MariaDB-Datenbankoperationen. Memo
In diesem Artikel werden hauptsächlich die grundlegenden Fähigkeiten des PHP + MariaDB-Datenbankbetriebs vorgestellt und die Verbindung und Beurteilung der PHP + MariaDB-Datenbank anhand von Beispielen sowie die Implementierungsfähigkeiten und Vorsichtsmaßnahmen für Benutzeranmeldung, -verwaltung und -löschung zusammengefasst und analysiert und andere verwandte Vorgänge, die auf PHP+MariaDB basieren. Freunde in Not können sich auf
Die Beispiele in diesem Artikel fassen die grundlegenden Fähigkeiten des PHP+MariaDB-Datenbankbetriebs zusammen. Teilen Sie es als Referenz mit allen:
PHP+MySQL ist eine relativ häufige Kombination, da ich Oracle subjektiv nicht besonders mag und es nach der Übernahme von MySQL einige Änderungen gab sind in meinen Knochen aufgetreten, so dass ich nach dem Ersetzen von MariaDB immer noch an der ursprünglichen Open-Source-Überzeugung von MySQL festhalte. Sie stellen im Wesentlichen den Kern von MySQL dar, sodass alle folgenden Datenbankbetriebscodes direkt in MySQL verwendet werden können.
Nachdem ich nachts die Basisumgebung von PHP+Apache eingerichtet und die MySQL-Datenbank installiert hatte, schrieb ich den einfachsten Datenbankverbindungscode und das Ergebnis war der folgende klassische Fehler: Schwerwiegender Fehler: Klasse 'mysqli ' nicht gefunden
<?php $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } ?>
Tatsächlich ist dieses Problem relativ einfach. Anhand des von der PHP-Engine zurückgegebenen Fehlers wissen Sie, dass mysqli nicht gefunden wurde korrekt geladen. Die meisten Probleme passieren in der Konfiguration der php.ini-Datei. Das Standard-Semikolon vor dem Konfigurationselement „extension=php_mysqli.dll“ wurde nicht entfernt. Ich habe diesen Fehler nicht gemacht. Es gibt auch die Datei php_mysqli.dll im ext-Verzeichnis im PHP-Installationspfad. Wo ist das Problem aufgetreten? Das Problem sollte immer noch an der falschen Stelle in der Datei php.ini auftreten. Nach einigem Lesen stellte ich fest, dass „extension_dir = „ext““ nicht geändert wurde. Ich habe damals nicht viel darüber nachgedacht, da ich dachte, dass die PHP-Engine diesen relativen Pfad automatisch finden könnte. Aber dann habe ich darüber nachgedacht, dass die PHP-Engine von Apache geladen wird und Apache diese relative Beziehung nicht kennt. Oder ändern Sie diesen Ort ehrlich in einen absoluten Pfad, und es ist in Ordnung. Tatsächlich können Sie diesen Code vor diesem Code schreiben, um zu sehen, ob die MySQL-Komponente geladen wurde. Diese Methode eignet sich für die Beurteilung anderer Komponenten vor dem Laden.
if (extension_loaded('mysqli')) { echo 'yes'; } else { echo 'no'; }
Im Folgenden wird eine Benutzerregistrierung und Systemanmeldung verwendet, um die grundlegendste Betriebsmethode von PHP + MySQL aufzuzeichnen.
1. Datenbank, Tabellen und Benutzer erstellen.
DROP DATABASE IF EXISTS `test`; CREATE DATABASE `test` USE `test`; DROP TABLE IF EXISTS `tbl_user`; CREATE TABLE `tbl_user` ( `username` varchar(32) NOT NULL default '', `password` varchar(32) NOT NULL default '', PRIMARY KEY (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
2. Erstellen Sie Registrierungs- und Anmelde-HTML-Seiten, nämlich register.html bzw. login.html. Wie im Bild unten gezeigt:
3. Registrierung und Login-Code:
register_do.php
<?php $username = $_POST['username']; $password = $_POST['password']; $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $query = "select * from tbl_user where username = '" . $username . "'"; echo '<p>' . $query; $result = $db->query($query); if ($result) { echo '<p>' . 'The user '. $username .' exist'; echo '<p>' . '<a href="register.html" rel="external nofollow" rel="external nofollow" >Back to register</a>'; } else { $query = "insert into tbl_user values ('". $username ."', '". $password ."')"; echo '<p>' . $query; $result = $db->query($query); if ($result) { echo '<p>' . '<a href="register.html" rel="external nofollow" rel="external nofollow" >Register successful</a>'; } } ?>
login_do.php
<?php $username = $_POST['username']; $password = $_POST['password']; $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $query = "select * from tbl_user where username = '" . $username . "' and password = '" . $password . "'"; echo '<p>' . $query; $result = $db->query($query); if ($result->num_rows) { echo '<p>' . '<a href="login.html" rel="external nofollow" rel="external nofollow" >Login successful</a>'; } else { echo '<p>' . '<a href="login.html" rel="external nofollow" rel="external nofollow" >Login failed</a>'; } ?>
userlist.php
<?php $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } echo '<p>' . 'All user as follows:'; $query = "select * from tbl_user order by username"; if ($result = $db->query($query)) { while ($row = $result->fetch_assoc()) { echo '<p>' . 'Username : ' . $row['username'] . ' <a href="userdelete.php?username=' . $row['username'] . '" rel="external nofollow" >delete</a>'; } } ?>
4. Der endgültige Anzeigeeffekt der Seite ist wie folgt:
5. Löschen Sie den Code des Benutzers:
userdelete.php
<?php $username = $_GET['username']; $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $query = "delete from tbl_user where username = '" . $username . "'"; echo $query; if ($result = $db->query($query)) { echo '<p>' . 'Delete user ' . $username . ' successful'; } else { echo '<p>' . 'Delete user ' . $username . ' failed'; } echo '<p>' . '<a href="userlist.php" rel="external nofollow" >Back to user list</a>'; ?>
Vorbereitung vorbereiten
1. Die Seite zum Hinzufügen von Büchern sieht wie folgt aus (bookadd.html):
2. Das Tabellenerstellungsskript lautet wie folgt:
DROP DATABASE IF EXISTS `test`; CREATE DATABASE IF NOT EXISTS `test`; USE `test`; DROP TABLE IF EXISTS `tbl_book`; CREATE TABLE IF NOT EXISTS `tbl_book` ( `isbn` varchar(32) NOT NULL, `title` varchar(32) NOT NULL, `author` varchar(32) NOT NULL, `price` float NOT NULL, PRIMARY KEY (`isbn`) ) ENGINE=InnoDB DEFAULT CHARSET=utf-8;
3 wie folgt (bookadd_do.php): Was hier besondere Aufmerksamkeit erfordert, ist der Satz „$db->query("set names utf-8")
“, der bedeutet, dass beim Schreiben von Daten in die Datenbank die UTF-8-Kodierung und -Dekodierung sowie die Kodierung und Dekodierung der Datenbanktabelle verwendet werden Der Vorgang wird angezeigt, um verstümmelte chinesische Zeichen zu vermeiden. Ich werde später einen Artikel speziell zu diesem technischen Punkt aufzeichnen.
<?php $isbn = $_POST['isbn']; $title = $_POST['title']; $author = $_POST['author']; $price = $_POST['price']; $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $db->query("set names utf-8"); //特别注意这句话 $stmt = $db->stmt_init(); $stmt->prepare("insert into tbl_book values (?,?,?,?)"); $stmt->bind_param("sssd", $isbn, $title, $author, $price); $stmt->execute(); echo '<p>' . 'Affect rows is ' . $stmt->affected_rows; echo '<p>' . '<a href="booklist.php" rel="external nofollow" >Go to book list page</a>'; ?>
4. Der Logikcode für die Anzeige von Buchinformationen lautet wie folgt: $db->query("set names utf-8")
<?php $db = new mysqli('localhost', 'root', 'admin', 'test'); if (mysqli_connect_errno()) { echo '<p>' . 'Connect DB error'; exit; } $db->query("set names utf-8"); //特别注意这句话 $stmt = $db->stmt_init(); $stmt->prepare("select * from tbl_book"); $stmt->bind_result($isbn, $title, $author, $price); $stmt->execute(); while($stmt->fetch()) { echo 'ISBN : ' . $isbn . '<p>'; echo 'Title : ' . $title . '<p>'; echo 'Author : ' . $author . '<p>'; echo 'Price : ' . $price . '<p>'; echo '<p>' . '-----------------------------' . '<p>'; } ?>5. Die angezeigte Seite sieht wie folgt aus: Okay, der grundlegendste Teil ist hier aufgezeichnet, das PHP Die Engine bietet eine sehr praktische Datenbankbetriebsmethode, aber die Entwicklung ist keineswegs so einfach. Verschiedene Ausnahmen müssen sorgfältig abgewogen werden, um sie abzufangen und zu behandeln. Datenbankdesign ist ebenfalls ein sehr interessantes Thema. Verwandte Empfehlungen:
PHP-PDO-basierte Datenbankbetriebsklasse [kann MySQL, SQLServer und Oracle unterstützen]
Das obige ist der detaillierte Inhalt vonZusammenfassung der Grundkenntnisse für PHP+MariaDB-Datenbankoperationen. Memo. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!