Hauptmenü

Untermenü

MySQLi - Besonderheiten

1. OOP und prozdural

Leider ist es eine ganz große Schwäche von MySQLi, dass man beides wild miteinander kombinieren kann. Das liegt daran, dass immer ein Objekt zurückgegeben wird, was diesen Mischmasch überhaupt erst möglich macht.

2. Beispiel 1


$mysqli mysqli_connect('host''user''db''pw');
$query  'SELECT bla FROM blubb';
$result $mysqli->query($query);
while ($row mysqli_fetch_assoc($result)) {
  print_r($row);
}

Vorgehensweise

3. Beispiel 2


$mysqli = new mysqli('host''user''db''pw');
$query  'SELECT bla FROM blubb';
$stmt   mysqli_prepare ($mysqli,$query);
$id     500;
$stmt  -> bind_param('i'$id);
mysqli_stmt_execute($stmt);
$result $stmt -> get_result();
while ($row mysqli_fetch_assoc($result)) {
  print_r($row);
}

Hier ist die Vorgehensweise noch extremer. Erst objektorientiert, dann prozedural. Und das immer schön abwechselnd.

4. Fazit

Schon alleine wegen dieses Tohuwabohus ist meiner Meinung nach MySQLi nur eine Zwischenlösung. Denn so ein Kuddelmuddel sollte es eigentlich nicht geben. Das haben sich wohl auch die Entwickler von PHP gedacht und sind mit der PDO-Erweiterung einen konsequenten Schritt weiter gegangen. Dazu komme ich aber in einem meiner nächsten Tutorials.

Ausnahmen

Wie ich schon vorher sagte, kann man connect_error erst ab Version 5.2.9 zweifelsfrei einsetzen. In diesem speziellen Fall kann man also die objektorientierte und prozedurale Programmierung ausnahmsweise mal mischen, wenn man über keine aktuelle PHP-Version verfügt.

zurück zum vorherigen Abschnitt