Ich habe vor kurzem dieses Projekt aktualisiert, um Composer-Integration, Unit-Tests und eine bessere Handhabung der Annahme von Argumenten durch Verweis (dies erfordert die Aktualisierung auf php 5.6) enthalten.
Ich habe eine Reihe von Klassen erstellt, die die Standard mysqli
y mysqli_stmt
Klassen, die es Ihnen ermöglichen, eine Wiedergabe des potenziellen Abfrage-Strings zu sehen, der Ihnen das bieten sollte, wonach Sie suchen:
https://github.com/noahheck/E_mysqli
Dies ist ein (fast) sofortiger Ersatz für Ihre normale mysqli
Objekt, das eine benutzerdefinierte mysqli_stmt
Objekt, wenn Sie prepare()
die Abfragezeichenfolge. Nach der Bindung Ihrer Parameter, E_mysqli
ermöglicht es Ihnen, die resultierende Abfragezeichenfolge als neue Eigenschaft der stmt
Objekt:
$mysqli = new E_mysqli($dbHost, $dbUser, $dbPass, $dbName);
$query = "INSERT INTO registration SET name = ?, email = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ss", $_POST['name'], $_POST['email']);
$stmt->execute();
echo $stmt->fullQuery;
zur Folge haben würde:
INSERT INTO registration SET name = 'John Doe', email = 'john.doe@example.com'
Es gibt einige Einschränkungen bei der Verwendung dieser Erweiterung (die in der README des Github-Projekts erläutert werden), aber für die Fehlersuche in problematischen Bereichen Ihrer Anwendung oder für den Übergang von einem prozeduralen zu einem objektorientierten Stil sollte dies für die meisten Benutzer eine gewisse Hilfe darstellen.
Wie ich im Github-Projekt dargelegt habe, habe ich keine praktischen Erfahrungen mit dem mysqli
Erweiterung, und dieses Projekt wurde auf Wunsch von Benutzern des Schwesterprojekts erstellt, so dass jedes Feedback von Entwicklern, die dieses Projekt in der Produktion verwenden, sehr willkommen wäre.
Haftungsausschluss - Wie ich bereits sagte, habe ich diese Erweiterung vorgenommen.