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.
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);
}
?>
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 (?, ?)";
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);
}
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.
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.
Vergessen Sie nicht, die Anweisung und die Datenbankverbindung zu schließen.
$stmt->close();
$conn->close();
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();
?>