Die Veralterung und schließliche Entfernung von mysql_-Funktionen aus PHP hat die Frage aufgeworfen: Können sie nahtlos durch mysqli_ ersetzt werden? Auch wenn es verlockend sein mag, eine Gleichwertigkeit anzunehmen, ist die Antwort ein klares Nein.
Glücklicherweise gibt es für diejenigen mit umfangreichem vorhandenen Code, der mysql_-Funktionen verwendet, einen Konverter Tool (https://github.com/philip/MySQLConverterTool), das den größten Teil des Konvertierungsprozesses automatisieren kann. Dadurch kann sofortige Funktionalität bereitgestellt werden, sodass Skripte wie erwartet ausgeführt werden können.
Über die vorübergehende Lösung hinaus, die das Konvertertool bietet, ist es ratsam, auf eine objektorientierte zu migrieren Methodik für die Datenbankinteraktion. Dieser Ansatz bietet mehrere Vorteile, darunter eine verbesserte Code-Organisation und Wartbarkeit.
In mysqli_ umfasst der Verbindungsaufbau das Erstellen eines neuen MySQLi-Objekts und dessen Zuweisung zu einer PHP-Variablen. Zum Beispiel:
$mysqli = new mysqli($host, $username, $password, $database);
Stellen Sie sicher, dass Sie die Fehlerberichterstattung für mysqli_ aktivieren, bevor Sie die Verbindung öffnen:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Alle mysqli_-Funktionen erfordern jetzt die Verbindung als erstes Argument im prozeduralen Code oder als Objektmethode im objektorientierten Code. Zum Ausführen einer Abfrage würde der Code so aussehen:
Prozedural:
$result = mysqli_query($mysqli, $sql);
Objektorientiert:
$result = $mysqli->query($sql);
Der Ergebnisabruf bleibt in mysqli_ gegenüber seinem Gegenstück zu mysql_ weitgehend unverändert.
Prozedur:
while ($row = mysqli_fetch_assoc($result))
Objektorientiert:
while ($row = $result->fetch_assoc())
Das ordnungsgemäße Schließen der Verbindung ist unerlässlich, und der Prozess bleibt mit mysql_ in mysqli_ konsistent:
Prozedur:
mysqli_close($mysqli);
Objektorientiert:
$mysqli->close();
Die Migration von mysql_ zu mysqli_ umfasst die Konvertierung aller zugehörigen Funktionen, einschließlich derjenigen für das Schließen von Verbindungen, die Ergebnisfreigabe, die Fehlerbehandlung und die Zeilenzählung.
Denken Sie daran, dass für die anfängliche Konvertierung möglicherweise einige erforderlich sind Bei manueller Arbeit kann der Einsatz des objektorientierten Ansatzes langfristige Vorteile für Ihre Codebasis bringen. Auch wenn das blinde Ersetzen von mysql_-Funktionen durch mysqli_ keine ideale Lösung ist, kann es ein Sprungbrett in Richtung einer moderneren und wartbareren PHP-Codebasis sein.
Das obige ist der detaillierte Inhalt vonKann ich in meinem PHP-Code einfach „mysql_' durch „mysqli_' ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!