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;