Verbindung zu MySQL-Datenbank via MySQLi

Verbindung aufbauen

Eine Verbindung zur Datenbank kann wie folgt aufgebaut werden:

PHP
<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
}
?>

SQL Query an Datenbank senden

Zum Senden von Queries an die Datenbank wird die Methode query($sql) verwendet:

PHP
<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
}
 
$sql = "UPDATE tabelle SET spalte = 'Wert' WHERE id = 1";
$mysqli->query($sql);
?>

Prepared Statements

Prepared Statements sind in MySQLi sehr umständlich umzusetzen, erheblich umständlicher als in PDO. Ein Beispiel sieht wie folgt aus:

PHP
<?php
$mysqli = new mysqli("localhost", "user", "Password", "database");
if ($mysqli->connect_errno) {
    die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
}
$sql = "UPDATE user SET email = ?, passwort = ? WHERE id = ?";
$statement = $mysqli->prepare($sql);
$statement->bind_param('ssi', $email, $passwort, $id);
 
//Variablen Werte zuweisen
$id= 1;
$email = "ein@beispiel.de";
$passwort = "neues passwort";
$statement->execute();
?>

Mittels bind_param() Werten die Parameter im SQL-Query mit den Variablen verbunden. Das erste Argument von bind_param(), im obigen Beispiel mit dem Wert ssi sind die Typen der Parameter. ssi gibt an, dass wir drei Parameter im Query haben, den ersten mit dem Typ string, den zweiten vom Typ string und den dritten vom Typ integer. Für Fließkommazahlen existiert noch der Wert d.

Nachdem die Variablen mit den Parametern verbunden wurden, wird diesen der entsprechende Wert zugewiesen und mittels $statement->execute() wird der Prepared Statement an die Datenbank gesendet.