Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie MySQLI_STMT :: Bereiten Sie sich auf die Handlungsvorgänge vor

Verwenden Sie MySQLI_STMT :: Bereiten Sie sich auf die Handlungsvorgänge vor

gitbox 2025-05-26

1. Warum verwenden Sie MySQLI_STMT :: Vorbereiten Sie für den Einfügenvorgang?


  1. Durch Vorverarbeitungsanweisungen werden die Struktur und die Daten von SQL -Anweisungen getrennt, wodurch das Risiko einer böswilligen Benutzereinspritzung vermieden wird.

  2. Verbesserung der Ausführungseffizienz <br> Für wiederholte Ausführungsanweisungen muss der Datenbankserver nur einmal die SQL -Struktur analysieren, um die Leistung zu verbessern.

  3. Code -Struktur löschen <br> Die Parameterbindung erleichtert das Lesen des Codes und verringert die Komplexität von Spleißzeichenfolgen.


2. Der vollständige Prozess der Verwendung von MySQLI_STMT :: Bereiten Sie sich auf die Verarbeitung vor

Hier ist ein Standardnutzungsbeispiel:

<Code> <? php // 1. Verbinden Sie eine Verbindung zur Datenbank $ mysqli = new MySQLi ("Gitbox.net", "Benutzername", "Passwort", "Datenbank");

// Überprüfen Sie die Verbindung
if ($ mysqli-> connect_errno) {
Die ("Verbindung fehlgeschlagen:". $ mysqli-> connect_error);
}

// 2. Bereiten Sie SQL -Anweisungen vor
$ sql = "In Benutzer (Benutzername, E -Mail, Alter) Werte (?,?,?)" einfügen ";
$ STMT = $ Mysqli-> vorbereiten ($ sql);

if (! $ stmt) {
sterben ("Vorverarbeitung fehlgeschlagen:". $ mysqli-> Fehler);
}

// 3.. Parameter binden
// 'SSI' repräsentiert Parametertyp, s repräsentiert String, und ich repräsentiert Ganzzahl
$ userername = "alice";
$ mail = " [email protected] ";
$ Alter = 25;
$ stmt-> bind_param ("ssi", $ userername, $ mail, $ ay);

// 4. Ausführen von Anweisungen ausführen
if ($ stmt-> execute ()) {
Echo "erfolgreich einfügen, die Einfügungs -ID lautet:". $ stmt-> insert_id;
} anders {
Echo "Ausführung fehlgeschlagen:". $ stmt-> fehler;
}

// 5. Aussagen und Verbindungen schließen
$ stmt-> close ();
$ mysqli-> close ();
?>
</code>


3.. Detaillierte Beschreibung jedes Schritts

1. Erstellen Sie ein MySQLI -Objekt, um eine Verbindung zur Datenbank herzustellen

Verwenden Sie neue MySQLI (Host, Benutzer, Pass, DBName), um eine Verbindung zur Datenbank herzustellen.
Es wird empfohlen, in Produktionsumgebungen Ausnahmebehandlung oder Fehlerprotokolle anstelle von Die () zu verwenden.

2. Erstellen Sie eine Vorverarbeitungsanweisung mit prepect ()

  • Ein Fragezeichen verwenden ? als Parameter -Platzhalter in SQL -Anweisungen.

  • Wenn Prepe () False zurückgibt, bedeutet dies einen Syntaxfehler oder eine Verbindungsausnahme.

3. Bind Parameter Bind_param ()

  • Binden Sie Variablen in die Argumente der Aussage.

  • Parametertypen werden durch Zeichenfolgen dargestellt, gemeinsame sind:

    • s String (String)

    • Ich ganze Zahl

    • D doppelte Präzision (doppelt)

    • B binär (Blob)

  • Die Variable muss ein Referenzpass sein und muss vor der Ausführung zugewiesen werden.

4. Execute execute ()

  • Rufen Sie $ stmt-> execute () an , um die Vorverarbeitungsanweisung auszuführen.

  • Zu beurteilen, ob die Ausführung auf der Grundlage des zurückgegebenen Ergebniss erfolgreich ist.

5. Schließen Sie die Ressource

  • Schließen Sie die Vorverarbeitungsanweisung $ stmt-> close (), um die Serverressourcen freizugeben.

  • Schließen Sie die Datenbankverbindung $ MySQLI-> close () .


V.

  1. Parametertypen müssen korrekt übereinstimmen <br> Ein falscher Parametertyp kann ein Dateninsertionsfehler oder Datentyp -Konvertierungsfehler verursachen.

  2. Die gebundene Variable muss vor der Ausführung zugewiesen werden <br> Andernfalls können Null- oder falsche Werte eingefügt werden.

  3. Ausnahme- und Fehlerprotokollprotokoll <br> Es wird nicht empfohlen, Die () direkt zu verwenden. Sie können den Ausnahmemechanismus verwenden, um Fehler zu erfassen, um die Robustheit des Programms zu gewährleisten.

  4. Batch -Einsatz <br> Wenn Batch -Einsätze erforderlich sind, können Sie Schleifenbindungsparameter und Ausführung verwenden. Es wird jedoch empfohlen, Transaktionen zur Gewährleistung der Atomizität zu aktivieren.

  5. Charaktercodierungskonsistenz <br> Stellen Sie sicher, dass die Charaktercodierung der Datenbank- und PHP -Skripte konsistent ist, und vermeiden Sie verstümmelten Code.

  6. insert_id Achtung <br> Stellen Sie bei der Verwendung von $ stmt-> insert_id den automatischen Primärschlüssel sicher, dass in der Tabelle autoIncrement-Spalten vorhanden sind.