PHP -Tutorial

PHP-HOME PHP-Einführung PHP-Installation PHP-Syntax PHP-Kommentare PHP-Variablen PHP-Echo / Drucken PHP-Datentypen PHP-Strings PHP-Nummern PHP-Mathematik PHP-Konstanten PHP-Operatoren PHP If...Else...Elseif PHP-Schalter PHP-Schleifen PHP-Funktionen PHP-Arrays PHP-Superglobals PHP-RegEx

PHP -Formulare

Handhabung von PHP-Formularen PHP-Formularvalidierung PHP-Formular erforderlich PHP-Formular-URL/E-Mail PHP-Formular vollständig

PHP- Erweitert

PHP-Datum und -Zeit PHP einschließen Umgang mit PHP-Dateien PHP-Datei öffnen/lesen PHP-Datei erstellen/schreiben Hochladen von PHP-Dateien PHP-Cookies PHP-Sitzungen PHP-Filter PHP-Filter für Fortgeschrittene PHP-Callback-Funktionen PHP-JSON PHP-Ausnahmen

PHP -OOP

PHP Was ist OOP PHP-Klassen/Objekte PHP-Konstruktor PHP-Destruktor PHP-Zugriffsmodifikatoren PHP-Vererbung PHP-Konstanten Abstrakte PHP-Klassen PHP-Schnittstellen PHP-Eigenschaften Statische PHP-Methoden Statische PHP-Eigenschaften PHP-Namespaces PHP-Iterables

MySQL- Datenbank

MySQL-Datenbank MySQL Connect MySQL-DB erstellen MySQL-Tabelle erstellen MySQL-Daten einfügen MySQL Letzte ID abrufen MySQL Mehrfach einfügen MySQL vorbereitet MySQL Select-Daten MySQL-Wo MySQL-Reihenfolge nach MySQL-Daten löschen MySQL-Update-Daten MySQL-Limit-Daten

PHP- XML

PHP-XML-Parser PHP-SimpleXML-Parser PHP SimpleXML - Get PHP-XML-Expat PHP-XML-DOM

PHP -AJAX

AJAX-Einführung AJAX-PHP AJAX-Datenbank AJAX-XML AJAX Live-Suche AJAX-Umfrage

PHP- Beispiele

PHP-Beispiele PHP-Compiler PHP-Quiz PHP-Übungen PHP-Zertifikat

PHP- Referenz

PHP-Übersicht PHP-Array PHP-Kalender PHP-Datum PHP-Verzeichnis PHP-Fehler PHP-Ausnahme PHP-Dateisystem PHP-Filter PHP-FTP PHP-JSON PHP-Schlüsselwörter PHP-Libxml PHP-Mail PHP-Mathematik PHP-Sonstiges PHP MySQLi PHP-Netzwerk PHP-Ausgabesteuerung PHP-RegEx PHP-SimpleXML PHP-Stream PHP-String Umgang mit PHP-Variablen PHP-XML-Parser PHP-Zip PHP-Zeitzonen

PHP -Verbindung zu MySQL


PHP 5 und höher kann mit einer MySQL-Datenbank arbeiten unter Verwendung von:

  • MySQLi-Erweiterung (das „i“ steht für Improved)
  • PDO (PHP-Datenobjekte)

Frühere Versionen von PHP verwendeten die MySQL-Erweiterung. Diese Erweiterung wurde jedoch 2012 eingestellt.


Soll ich MySQLi oder PDO verwenden?

Wenn Sie eine kurze Antwort brauchen, wäre es "Was auch immer Sie mögen".

Sowohl MySQLi als auch PDO haben ihre Vorteile:

PDO funktioniert auf 12 verschiedenen Datenbanksystemen, während MySQLi nur mit MySQL-Datenbanken funktioniert.

Wenn Sie also Ihr Projekt auf die Verwendung einer anderen Datenbank umstellen müssen, macht PDO den Vorgang einfach. Sie müssen nur die Verbindungszeichenfolge und einige Abfragen ändern. Bei MySQLi müssen Sie den gesamten Code neu schreiben – einschließlich Abfragen.

Beide sind objektorientiert, aber MySQLi bietet auch eine prozedurale API.

Beide unterstützen vorbereitete Anweisungen. Vorbereitete Anweisungen schützen vor SQL-Injection und sind sehr wichtig für die Sicherheit von Webanwendungen.


MySQL-Beispiele sowohl in MySQLi- als auch in PDO-Syntax

In diesem und in den folgenden Kapiteln demonstrieren wir drei Arten der Arbeit mit PHP und MySQL:

  • MySQLi (objektorientiert)
  • MySQLi (prozedural)
  • PDO

MySQLi-Installation

Für Linux und Windows: Die MySQLi-Erweiterung wird in den meisten Fällen automatisch installiert, wenn das php5-mysql-Paket installiert wird.

Einzelheiten zur Installation finden Sie unter: http://php.net/manual/en/mysqli.installation.php


PDO-Installation

Einzelheiten zur Installation finden Sie unter: http://php.net/manual/en/pdo.installation.php



Öffnen Sie eine Verbindung zu MySQL

Bevor wir auf Daten in der MySQL-Datenbank zugreifen können, müssen wir uns mit dem Server verbinden können:

Beispiel (MySQLi objektorientiert)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Hinweis zum obigen objektorientierten Beispiel:

$connect_error war bis PHP 5.2.9 und 5.3.0 defekt. Wenn Sie die Kompatibilität mit PHP-Versionen vor 5.2.9 und 5.3.0 sicherstellen müssen, verwenden Sie stattdessen den folgenden Code:

// Verbindung
prüfen if (mysqli_connect_error()) {
  die("Datenbankverbindung fehlgeschlagen: " . mysqli_connect_error());
}

Beispiel (MySQLi-Prozedur)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Beispiel (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

Hinweis: Im obigen PDO-Beispiel haben wir auch eine Datenbank (myDB) angegeben . PDO erfordern eine gültige Datenbank, zu der eine Verbindung hergestellt werden kann. Wenn keine Datenbank angegeben ist, wird eine Ausnahme ausgelöst.

Tipp: Ein großer Vorteil von PDO ist, dass es eine Ausnahmeklasse hat, um alle Probleme zu behandeln, die bei unseren Datenbankabfragen auftreten können. Wenn innerhalb des try{ }-Blocks eine Ausnahme ausgelöst wird, stoppt die Ausführung des Skripts und geht direkt zum ersten catch(){ }-Block über.


Schließen Sie die Verbindung

Die Verbindung wird automatisch geschlossen, wenn das Skript beendet wird. Um die Verbindung vorher zu schließen, verwenden Sie Folgendes:

MySQLi objektorientiert:

$conn->close();

MySQLi-Prozedur:

mysqli_close($conn);

PDO:

$conn = null;