Neueste Web-Entwicklung Tutorials
 

PHP Eine Verbindung mit MySQL


PHP 5 und später arbeiten kann, mit einer MySQL-Datenbank:

  • MySQLi Verlängerung (the "i" stands for improved) eine (the "i" stands for improved)
  • PDO (PHP Data Objects)

Frühere Versionen von PHP verwendet, um die MySQL-Erweiterung. Allerdings wurde diese Erweiterung im Jahr 2012 weiterentwickelt.


Sollte ich MySQLi oder PDO?

Wenn Sie eine kurze Antwort benötigen, wäre es "Whatever you like" .

Sowohl MySQLi und PDO haben ihre Vorteile:

PDO wird auf 12 verschiedenen Datenbanksystemen arbeiten, wo, wie MySQLi nur mit MySQL-Datenbanken arbeiten.

Also, wenn Sie Ihr Projekt wechseln haben eine andere Datenbank zu verwenden, PDO macht den Prozess einfach. Sie haben nur die Verbindungszeichenfolge und ein paar Abfragen zu ändern. Mit MySQLi, müssen Sie den gesamten Code neu zu schreiben - Abfragen enthalten.

Beide sind objektorientiert, aber MySQLi bietet auch ein verfahren API.

Beide unterstützen Prepared Statements. Prepared Statements Schutz vor SQL-Injection und sind sehr wichtig für die Sicherheit von Webanwendungen.


MySQL Beispiele in beiden MySQLi und PDO Syntax

In diesem und in den folgenden Kapiteln zeigen wir drei Möglichkeiten, die Arbeit mit PHP und MySQL:

  • MySQLi (object-oriented)
  • MySQLi (procedural)
  • PDO

MySQLi Installations

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

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


PDO-Installation

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


Öffnen Sie eine Verbindung zum MySQL

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

Beispiel (MySQLi Object-Oriented)

<?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 auf die objektorientierte Beispiel oben: $ connect_error bis PHP 5.2.9 und 5.3.0 war gebrochen. Wenn Sie die Kompatibilität mit PHP-Versionen den folgenden Code vor 5.2.9 und 5.3.0, um sicherzustellen, müssen anstatt:

// Verbindung prüfen
wenn ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() );
}

Beispiel (MySQLi Procedural)

<?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();
    }
?>

Beachten Sie, dass im PDO Beispiel oben haben wir auch eine Datenbank angegeben (myDB) . PDO benötigt eine gültige Datenbank zu verbinden. Wenn keine Datenbank angegeben ist, wird eine Ausnahme ausgelöst.

Tipp: Ein großer Vorteil von PDO ist , dass es eine Ausnahmeklasse , um Probleme zu behandeln , die in unserer Datenbank - Abfragen auftreten können. Wenn eine Ausnahme im try {} Block geworfen wird, stoppt das Skript ausgeführt wird und fließt direkt in den ersten catch() {} Block.


Schließen Sie die Verbindung

Die Verbindung wird automatisch geschlossen werden, wenn das Skript beendet. Um, bevor die Verbindung zu schließen, gehen Sie wie folgt:

Beispiel (MySQLi Object-Oriented)

$conn->close();

Beispiel (MySQLi Procedural)

mysqli_close($conn);

Beispiel (PDO)

$conn = null;