Aktueller Standort: Startseite> Neueste Artikel> So führen Sie eine Einfügungsoperation mit der Funktion MySQLI :: STMT_INIT aus und erhalten Sie die Selbststillstands-ID (Insert_id)

So führen Sie eine Einfügungsoperation mit der Funktion MySQLI :: STMT_INIT aus und erhalten Sie die Selbststillstands-ID (Insert_id)

M66 2025-07-10

In PHP können Sie bei Verwendung einer MySQL -Datenbank über die MySQLI -Erweiterung mit der Datenbank interagieren. Wenn Sie eine Einfügungsoperation ausführen und die Selbststillstands-ID der eingefügten Daten in der Datenbank gleichzeitig erhalten möchten, können Sie die Funktion von MySQLI :: STMT_INIT verwenden, um dies zu erreichen. Als nächstes erklären wir ausführlich, wie Sie MySQLI :: STMT_INIT verwenden, um diese Aufgabe zu erledigen.

Schritt 1: Erstellen Sie eine Datenbankverbindung

Zunächst müssen wir eine Datenbankverbindung herstellen. Um die Sicherheit des Codes zu gewährleisten, wird empfohlen, die objektorientierte Methode von MySQLI zu verwenden, um eine Verbindung zur Datenbank herzustellen. Hier ist der Beispielcode für eine Datenbankverbindung:

 <?php
$host = 'localhost'; // Datenbankhost
$user = 'root';      // Datenbank Benutzername
$password = '';      // Datenbankkennwort
$dbname = 'test';    // Datenbankname

// Erstellen Sie eine Datenbankverbindung
$conn = new mysqli($host, $user, $password, $dbname);

// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($conn->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
?>

Schritt 2: Bereiten Sie SQL -Anweisungen vor

Bei der Vorbereitung auf eine Einfügungsoperation müssen wir zuerst eine SQL -Anweisung schreiben. Durch die Funktion MySQLI :: STMT_INIT können wir eine vorbereitete Anweisung initialisieren. Im folgenden Beispiel werden wir einen neuen Benutzer in die Benutzertabelle einfügen.

 $sql = "INSERT INTO users (username, email) VALUES (?, ?)";

Schritt 3: Anweisung initialisieren

Wir können MySQLI :: STMT_INIT verwenden, um ein Anweisungsobjekt zu initialisieren. Durch dieses Objekt können wir Parameter binden und Abfragen ausführen.

 $stmt = $conn->stmt_init();
if (!$stmt->prepare($sql)) {
    die("SQL Fehler: " . $stmt->error);
}

Schritt 4: Parameter binden

Als nächstes müssen wir den tatsächlichen Wert an den Platzhalter ( ? ) In der SQL -Erklärung binden. Verwenden Sie die Methode Bind_param , um die Parameterbindung zu vervollständigen. Angenommen, der Benutzername, den wir einfügen möchten, lautet Johndoe und die E -Mail lautet Johndoe@m66.net . Sie können es so schreiben:

 $username = 'johndoe';
$email = 'johndoe@m66.net';

// Binden Sie Parameter
$stmt->bind_param("ss", $username, $email);

Im obigen Code bedeutet "SS" , dass wir zwei Parameter vom String-Typ gebunden haben.

Schritt 5: Führen Sie SQL-Anweisungen aus und erhalten Sie die selbst errichtete ID

Nach der Durchführung des Einfügungsvorgangs generiert MySQL automatisch eine Selbstunternehmens-ID für den neu eingefügten Datensatz. Wir können diese ID über die Eigenschaft insert_id erhalten.

 if ($stmt->execute()) {
    echo "Neue Rekordinsertion erfolgreich。Eingefügt ID für: " . $conn->insert_id;
} else {
    echo "Einfügen fehlgeschlagen: " . $stmt->error;
}

Hier gibt $ conn-> insert_id die autoIncrement-ID des eingefügten Datensatzes zurück.

Schritt 6: Schließen Sie die Verbindung

Vergessen Sie nicht, die Anweisung und die Datenbankverbindung zu schließen.

 $stmt->close();
$conn->close();

Vollständiger Codebeispiel

Hier ist ein vollständiger Beispielcode, der zeigt, wie eine Einfügungsoperation mit MySQLI :: STMT_INIT durchgeführt wird und die autoIncrement -ID abgerufen wird.

 <?php
$host = 'localhost';
$user = 'root';
$password = '';
$dbname = 'test';

$conn = new mysqli($host, $user, $password, $dbname);

if ($conn->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}

$sql = "INSERT INTO users (username, email) VALUES (?, ?)";

$stmt = $conn->stmt_init();
if (!$stmt->prepare($sql)) {
    die("SQL Fehler: " . $stmt->error);
}

$username = 'johndoe';
$email = 'johndoe@m66.net';

$stmt->bind_param("ss", $username, $email);

if ($stmt->execute()) {
    echo "Neue Rekordinsertion erfolgreich。Eingefügt ID für: " . $conn->insert_id;
} else {
    echo "Einfügen fehlgeschlagen: " . $stmt->error;
}

$stmt->close();
$conn->close();
?>