In PHP ist die MySQLI -Erweiterung ein leistungsstarkes Tool zur Interaktion mit einer MySQL -Datenbank. Wenn wir große Datenmengen bearbeiten, sind Paging -Abfragen eine sehr häufige und effektive Technik, um zu vermeiden, dass alle Daten gleichzeitig geladen werden. Heute werden wir untersuchen, wie die Funktion MySQLI :: STMT_INIT verwendet wird, um die Funktion Pagination Query zu implementieren.
Die Paginierungsabfrage bezieht sich auf die Anzeige von Daten in Stapeln entsprechend einer bestimmten Anzahl von Daten und der Anzeige eines Teils der Daten auf jeder Seite, anstatt alle Daten gleichzeitig zu laden. Durch Paging können wir nicht nur die Datenverarbeitungseffizienz verbessern, sondern auch den Front-End-Display-Effekt optimieren und die Benutzererfahrung verbessern.
Die Funktion von MySQLI :: STMT_INIT wird verwendet, um ein neues MySQLi_Stmt -Objekt zu initialisieren, und dann kann die Vorverarbeitungsanweisungen über das Objekt ausgeführt werden. Vorverarbeitungsanweisungen können die Effizienz der Abfrage verbessern und gleichzeitig das Risiko einer SQL -Injektion vermeiden.
Angenommen, wir haben eine Benutzertabelle , die eine große Anzahl von Benutzerinformationen enthält, und wir möchten die Daten dieser Benutzer paginieren. Zuerst müssen wir die Gesamtzahl der Daten berechnen und dann den Offset der Abfrage basierend auf der Seitenzahl und der Anzahl der angezeigten Teile pro Seite berechnen. Im Folgenden finden Sie die Schritte zur Implementierung von Paging -Abfragen.
<?php
// Datenbankverbindungskonfiguration
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// Eine Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Überprüfen Sie die Verbindung
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Anzahl der angezeigten Einträge pro Seite
$records_per_page = 10;
// Holen Sie sich die aktuelle Seitennummer,Standard ist die erste Seite
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$start_from = ($page - 1) * $records_per_page;
// Holen Sie sich die Gesamtzahl der Daten
$sql_count = "SELECT COUNT(*) AS total_records FROM users";
$result_count = $conn->query($sql_count);
$row = $result_count->fetch_assoc();
$total_records = $row['total_records'];
// Berechnen Sie die Gesamtzahl der Seiten
$total_pages = ceil($total_records / $records_per_page);
// verwenden stmt_init Funktionsinitialisierungsvorverarbeitungsanweisung
$stmt = $conn->stmt_init();
if ($stmt->prepare("SELECT * FROM users LIMIT ?, ?")) {
// Binden Sie Parameter
$stmt->bind_param("ii", $start_from, $records_per_page);
// Eine Frage ausführen
$stmt->execute();
// Ergebnisse erhalten
$result = $stmt->get_result();
// Ausgabedaten
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
}
// Füllen Sie das Ergebnissatz frei
$stmt->free_result();
// Schließen Sie die Vorverarbeitungserklärung
$stmt->close();
}
// Schließen Sie die Datenbankverbindung
$conn->close();
?>
<!-- Paging -Links anzeigen -->
<div>
<p>Page:
<?php
// Paginierungsnavigation
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='m66.net?page=$i'>$i</a> ";
}
?>
</p>
</div>
Datenbankverbindung: Verwenden Sie neue MySQLi (), um eine Verbindung zur Datenbank zu erstellen. Wenn die Verbindung fehlschlägt, zeigt der Code eine Fehlermeldung an und beendet die Ausführung.
Berechnen Sie den Paging -Offset: Die Anzahl der auf jeder Seite angezeigten Datensätze lautet records_per_page und berechnen Sie, welchen Datensatz basierend auf der aktuellen Seite $ $ starten, um die Abfrage zu starten. $ start_from = ($ Seite - 1) * $ records_per_page berechnet den Offset.
Erhalten Sie die Gesamtzahl der Datensätze: Wir führen eine Abfrage aus, um die Gesamtzahl der Datensätze in der Tabelle der Benutzer zu erhalten und so die Gesamtzahl der Seiten zu berechnen.
Führen Sie eine Paginierungsabfrage aus: Verwenden Sie STMT_INIT () , um eine Vorverarbeitungsanweisung zu initialisieren, eine Abfrage über Prepe () -Methode zu schreiben, die Methode zu bind_param () , um die Abfrageparameter zu binden, und dann die Abfrage ausführen und das Ergebnis abrufen.
Paging Navigation anzeigen: Generieren Sie über eine Schleife Paging -Links. Wenn Sie auf jede Seitennummer klicken, wird sie zur entsprechenden Seite springen und sie im Format m66.net?page=$I anzeigen.
Die Verwendung der MySQLI :: STMT_init -Funktion für Pagination -Abfrage kann nicht nur die Effizienz der Datenabfrage verbessern, sondern auch die SQL -Injektion effektiv verhindern. In der tatsächlichen Entwicklung werden häufig Paging -Abfragen in Szenarien verwendet, in denen große Datenmengen benötigt werden. Durch angemessenes Paging -Design können die Systemleistung und die Benutzererfahrung erheblich verbessert werden.
Ich hoffe, dieser Artikel kann Ihnen helfen, zu verstehen, wie Sie die Funktion MySQLI :: STMT_INIT verwenden, um die Funktion Pagination Query zu implementieren. Wenn Sie Fragen haben oder weitere Diskussionen benötigen, überlassen Sie bitte eine Nachricht, um zu diskutieren!