Heim  >  Artikel  >  Backend-Entwicklung  >  Grundkenntnisse im Betrieb der PHP+MariaDB-Datenbank

Grundkenntnisse im Betrieb der PHP+MariaDB-Datenbank

jacklove
jackloveOriginal
2018-06-22 17:16:515099Durchsuche

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 darauf beziehen.

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 sehr mag und es einige Änderungen gab, nachdem MySQL übernommen wurde 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(&#39;localhost&#39;, &#39;root&#39;, &#39;admin&#39;, &#39;test&#39;);
  if (mysqli_connect_errno())
  {
    echo &#39;<p>&#39; . &#39;Connect DB error&#39;;
    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(&#39;mysqli&#39;))
{
  echo &#39;yes&#39;;
}
else
{
  echo &#39;no&#39;;
}

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 &#39;&#39;,
 `password` varchar(32) NOT NULL default &#39;&#39;,
 PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

2. Erstellen Sie Registrierungs- und Anmelde-HTML-Seiten, bzw. register.html und login.html. Wie im Bild unten gezeigt:

3. Registrierungs- und Anmeldecode:

register_do.php

<?php
  $username = $_POST[&#39;username&#39;];
  $password = $_POST[&#39;password&#39;];
  $db = new mysqli(&#39;localhost&#39;, &#39;root&#39;, &#39;admin&#39;, &#39;test&#39;);
  if (mysqli_connect_errno())
  {
    echo &#39;<p>&#39; . &#39;Connect DB error&#39;;
    exit;
  }
  $query = "select * from tbl_user where username = &#39;" . $username . "&#39;";
  echo &#39;<p>&#39; . $query;
  $result = $db->query($query);
  if ($result)
  {
    echo &#39;<p>&#39; . &#39;The user &#39;. $username .&#39; exist&#39;;
    echo &#39;<p>&#39; . &#39;<a href="register.html" rel="external nofollow" rel="external nofollow" >Back to register</a>&#39;;
  }
  else
  {
    $query = "insert into tbl_user values (&#39;". $username ."&#39;, &#39;". $password ."&#39;)";
    echo &#39;<p>&#39; . $query;
    $result = $db->query($query);
    if ($result)
    {
      echo &#39;<p>&#39; . &#39;<a href="register.html" rel="external nofollow" rel="external nofollow" >Register successful</a>&#39;;
    }
  }
?>

login_do.php

<?php
  $username = $_POST[&#39;username&#39;];
  $password = $_POST[&#39;password&#39;];
  $db = new mysqli(&#39;localhost&#39;, &#39;root&#39;, &#39;admin&#39;, &#39;test&#39;);
  if (mysqli_connect_errno())
  {
    echo &#39;<p>&#39; . &#39;Connect DB error&#39;;
    exit;
  }
  $query = "select * from tbl_user where username = &#39;" . $username . "&#39; and password = &#39;" . $password . "&#39;";
  echo &#39;<p>&#39; . $query;
  $result = $db->query($query);
  if ($result->num_rows)
  {
    echo &#39;<p>&#39; . &#39;<a href="login.html" rel="external nofollow" rel="external nofollow" >Login successful</a>&#39;;
  }
  else
  {
    echo &#39;<p>&#39; . &#39;<a href="login.html" rel="external nofollow" rel="external nofollow" >Login failed</a>&#39;;
  }
?>

userlist.php

<?php
  $db = new mysqli(&#39;localhost&#39;, &#39;root&#39;, &#39;admin&#39;, &#39;test&#39;);
  if (mysqli_connect_errno())
  {
    echo &#39;<p>&#39; . &#39;Connect DB error&#39;;
    exit;
  }
  echo &#39;<p>&#39; . &#39;All user as follows:&#39;;
  $query = "select * from tbl_user order by username";
  if ($result = $db->query($query))
  {
    while ($row = $result->fetch_assoc())
    {
      echo &#39;<p>&#39; . &#39;Username : &#39; . $row[&#39;username&#39;] . &#39;  <a href="userdelete.php?username=&#39; . $row[&#39;username&#39;] . &#39;" rel="external nofollow" >delete</a>&#39;;
    }
  }
?>

4. Der endgültige Anzeigeeffekt der Seite ist wie folgt:

5. Löschen Sie den Code des Benutzers:

userdelete.php

<?php
  $username = $_GET[&#39;username&#39;];
  $db = new mysqli(&#39;localhost&#39;, &#39;root&#39;, &#39;admin&#39;, &#39;test&#39;);
  if (mysqli_connect_errno())
  {
    echo &#39;<p>&#39; . &#39;Connect DB error&#39;;
    exit;
  }
  $query = "delete from tbl_user where username = &#39;" . $username . "&#39;";
  echo $query;
  if ($result = $db->query($query))
  {
    echo &#39;<p>&#39; . &#39;Delete user &#39; . $username . &#39; successful&#39;;
  }
  else
  {
    echo &#39;<p>&#39; . &#39;Delete user &#39; . $username . &#39; failed&#39;;
  }
  echo &#39;<p>&#39; . &#39;<a href="userlist.php" rel="external nofollow" >Back to user list</a>&#39;;
?>

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.

rrree

4. Der Logikcode für die Anzeige von Buchinformationen lautet wie folgt: $db->query("set names utf-8")

<?php
  $isbn = $_POST[&#39;isbn&#39;];
  $title = $_POST[&#39;title&#39;];
  $author = $_POST[&#39;author&#39;];
  $price = $_POST[&#39;price&#39;];
  $db = new mysqli(&#39;localhost&#39;, &#39;root&#39;, &#39;admin&#39;, &#39;test&#39;);
  if (mysqli_connect_errno())
  {
    echo &#39;<p>&#39; . &#39;Connect DB error&#39;;
    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 &#39;<p>&#39; . &#39;Affect rows is &#39; . $stmt->affected_rows;
  echo &#39;<p>&#39; . &#39;<a href="booklist.php" rel="external nofollow" >Go to book list page</a>&#39;;
?>

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.

Artikel, die Sie interessieren könnten:

PHP PDO-basierte Datenbankoperationsklasse

Inhalte im Zusammenhang mit der von PHP implementierten MySQL-Lese-/Schreibtrennung

Wie PHP die Methode implementiert, mehrere Dateien in das ZIP-Format zu komprimieren und sie lokal herunterzuladen

Das obige ist der detaillierte Inhalt vonGrundkenntnisse im Betrieb der PHP+MariaDB-Datenbank. 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