Die kurze Antwort ist nein , die Funktionen sind nicht gleichwertig.
Die gute Nachricht ist, dass es ein Konvertierungstool gibt, das Ihnen hilft, wenn Sie viele Anrufe/Projekte ändern müssen. Dadurch können Ihre Skripte sofort funktionieren.
https://github.com/philip/MySQLConverterTool
Es ist eine gegabelte Version der Originalversion von Oracle und koscher.
Das heißt, es ist nicht allzu schwierig, Ihren Code zu aktualisieren, und Sie möchten vielleicht sowieso zu einer objektorientierten Methodik migrieren ...
1) Die Verbindung
Sie benötigen praktisch eine neue Verbindungsfunktion, die die Verbindung als PHP-Variable speichert, zum Beispiel;
$mysqli = new mysqli($host, $username, $password, $database);
Beachten Sie, dass ich die Verbindung in $mysqli
gespeichert habe . Sie können in $db
speichern oder was auch immer Sie möchten, aber Sie sollten dies in Ihrem gesamten Code verwenden, um auf die Verbindung zu verweisen.
Denken Sie daran, die Fehlerberichterstattung für mysqli zu aktivieren, bevor Sie die Verbindung öffnen;
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
2) Die Abfrage
Hinweis:Sie sollten sich mit vorbereiteten Anweisungen, die in MySQLi verfügbar sind, vor SQL-Injection schützen. Sehen Sie sich Wie kann ich SQL-Injection in PHP verhindern? an , aber ich werde hier nur die Grundlagen behandeln.
Sie müssen jetzt die Verbindung als Argument in Ihre Abfrage aufnehmen, und andere mysqli_
Funktionen. In prozeduralem Code ist es das erste Argument, in OO schreibt man es wie eine Klassenmethode.
Verfahrenstechnisch:
$result = mysqli_query($mysqli, $sql);
OO:
$result = $mysqli->query($sql);
3) Ergebnis abrufen
Das Abrufen des Ergebnisses ähnelt dem alten mysql_
Funktion in prozedural;
while ($row = mysqli_fetch_assoc($result))
sondern als $result
jetzt ein Objekt in mysqli ist, können Sie den Objektfunktionsaufruf;
while ($row = $result->fetch_assoc())
4) Verbindung schließen
Sie müssen also wie zuvor die Verbindung in die Schließfunktion aufnehmen; als Argument im Verfahren;
mysqli_close($mysqli);
und als das Objekt, auf dem Sie die Funktion in OO ausführen;
$mysqli->close();
Ich wäre für immer hier, wenn ich sie alle durchgehen würde, aber Sie verstehen schon. Sehen Sie sich die Dokumentation an für mehr Informationen. Vergessen Sie nicht, alle Funktionen zum Schließen von Verbindungen, Ergebnisfreigaben oder Fehler- und Zeilenzählfunktionen, die Sie haben, umzuwandeln.
Die grundlegende Faustregel lautet für Funktionen, die die Datenbankverbindung verwenden, dass Sie sie jetzt in die Funktion aufnehmen müssen (entweder als erstes Argument in prozedural oder als Objekt, das Sie zum Aufrufen der Funktion in OO verwenden) oder für eine Ergebnismenge Sie können die Funktion einfach in mysqli_
ändern oder verwenden Sie die Ergebnismenge als Objekt.