Zeilen in MySQL PHP zählen

Subodh Poudel 30 Januar 2023
  1. Verwenden Sie die PDO-Methode fetchColumn(), um die Gesamtzahl der Zeilen in einer MySQL-Tabelle zu zählen
  2. Verwenden Sie eine prozedurale Methode, um die Anzahl der Zeilen in der MySQL-Tabelle mit der Funktion mysqli_num_rows() zu zählen
  3. Verwenden Sie eine objektorientierte Methode, um die Anzahl der Zeilen in einer Tabelle mithilfe der Eigenschaft num_rows zu zählen
Zeilen in MySQL PHP zählen

Wir werden eine Methode einführen, um alle Zeilen aus einer Tabelle in MySQL in PHP mit den Methoden fetchColumn() und COUNT() zu zählen. Die Funktion fetchColumn() wird von PDO (PHP Data Objects) angegeben, und die Methode COUNT() ist eine SQL-Funktion. PDO ist eine objektorientierte Methode zum Verbinden der Datenbank und des Backends. Diese Methode ist flexibel, da PDO mit 12 verschiedenen Datenbanksystemen kompatibel ist.

Wir werden eine andere Methode demonstrieren, um alle Zeilen aus einer Tabelle mit der Funktion mysqli_num_rows() zu zählen. Diese Methode verwendet eine objektorientierte Methode, um die Datenbankverbindung mit dem Server mithilfe der Funktion mysqli() herzustellen. Der Rest des Prozesses erfolgt jedoch prozedural.

Wir werden eine Möglichkeit demonstrieren, alle Zeilen aus einer Tabelle mithilfe der Eigenschaft num_rows in PHP zu zählen. Diese Methode folgt der vollständigen objektorientierten Praxis, um die Datenbank zu verbinden und die Gesamtzahl der Zeilen zu zählen. Die Verwendung der Anweisung vorbereitet in dieser Methode schützt sie vor der Sicherheitsanfälligkeit der SQL-Injection.

Verwenden Sie die PDO-Methode fetchColumn(), um die Gesamtzahl der Zeilen in einer MySQL-Tabelle zu zählen

PDO ist eine der objektorientierten Möglichkeiten, die Datenbank mit dem PHP-Server zu verbinden. Wir können die in PDO verfügbare Methode fetchColumn() verwenden, um die Zeilen der Tabelle zu zählen. Zunächst erstellen wir eine Datenbank und füllen die Tabelle mit Daten. Anschließend richten wir die Datenbankverbindung mit dem richtigen Host, Datenbankbenutzernamen, Datenbankkennwort und Datenbanknamen ein. Wir verwenden eine Instanz eines PDO-Objekts, um die Verbindung zu speichern. Sobald wir sichergestellt haben, dass die Datenbankverbindung funktioniert, fragen wir die SQL-Anweisung mit der Funktion COUNT() ab und führen sie aus. Die Funktion COUNT() verwendet das Parameter * als Parameter, der alle Zeilen in der angegebenen Tabelle zählt. Dann verwenden wir die Methode fetchColumn(), um die Anzahl der Zeilen in der Tabelle anzuzeigen.

In den folgenden Anweisungen wird davon ausgegangen, dass eine Datenbankverbindung zum Server hergestellt wurde. Die Tabelle in der Datenbank enthält zwei Zeilen.

MariaDB [oop]> select * from users;
+----+-----------+------------+------------+
| id | firstname | lastname   | dob        |
+----+-----------+------------+------------+
|  1 | Dan    	 |  James     | 1998-08-23 |
|  2 | Dean   	 | Henderson  | 2000-03-30 |
+----+-----------+----------+--------------+
2 rows in set (0.003 sec)

Schreiben Sie beispielsweise in Test.php eine Klasse mit dem Namen Test, die die Klasse DB erbt. Schreiben Sie eine öffentliche Funktion getRowsNumber() in die Klasse. Weisen Sie eine Variable $sql zu und schreiben Sie mit der Anweisung SELECT eine Abfrage, um alles aus der Tabelle users auszuwählen. Verwenden Sie COUNT(*) in der Anweisung SELECT, um die Anzahl der Zeilen zu zählen. Verwenden Sie die Funktion connect, um die Verbindung von DB.php abzurufen, und fragen Sie den oben geschriebenen SQL-Befehl mit der Funktion query() ab. Weisen Sie diese Aufgaben einer Variablen $stmt zu. Verwenden Sie die Variable $stmt, um die Methode fetchColumn() aufzurufen und das Ergebnis anzuzeigen.

Im folgenden Beispiel enthält die Oberklasse DB eine Methode connect(), die die Datenbankverbindung enthält. Die Funktion getRowsNumber() wird aus einer anderen PHP-Datei aufgerufen als:

$testObj = new Test();
$testObj->getRowsNumber()

Beispielcode:

# php 7.*
<?php
class Test extends DB {
    public function getRowsNumber() {
        $sql = "SELECT COUNT(*) FROM users";
        $stmt = $this->connect()->query($sql);
        $count = $stmt->fetchColumn();
        print $count;
    }
}

Ausgabe:

The total number of rows is: 2

Verwenden Sie eine prozedurale Methode, um die Anzahl der Zeilen in der MySQL-Tabelle mit der Funktion mysqli_num_rows() zu zählen

Wir können die Funktion mysqli_num_rows() in PHP verwenden, um die Zeilen in einer MySQL-Tabelle zu zählen. Wir können ein Objekt der Funktion mysqli() erstellen, um die Datenbank mit dem PHP-Server zu verbinden. Die Funktion verwendet Hostnamen, Benutzernamen, Kennwort und Datenbanknamen als Parameter. Wir schreiben die SQL-Anweisung, um jede Zeile aus der Tabelle auszuwählen. Wir verwenden die Funktion mysqli_query(), um die Datenbankverbindung zu verwenden und die Abfrage auszuführen. Dann verwenden wir die Funktion mysql_num_rows(), um die Anzahl der Zeilen zu zählen und anzuzeigen.

Im folgenden Beispiel werden dieselbe Datenbank, dieselbe Tabelle und dieselben Daten in der Tabelle wie in der ersten Methode verwendet.

Weisen Sie beispielsweise den Variablen $host, $username, $password und $database den Hostnamen, den Benutzernamen, das Kennwort und den Datenbanknamen zu. Erstellen Sie mit dem Schlüsselwort new ein Objekt der Funktion mysqli() und übergeben Sie die Variablen als Parameter der Funktion. Weisen Sie den Wert des Objekts in der Variablen $conn zu. Schreiben Sie eine SQL-Abfrage, um alles aus der Tabelle users in der Variablen $sql auszuwählen. Verwenden Sie eine Variable $result, um die Funktion mysqli_query() zu speichern, die die Variablen $conn und $sql verwendet. Überprüfen Sie den booleschen Wert der Variablen $result unter Verwendung der Bedingung if. Verwenden Sie in der Bedingung if mysqli_num_rows() mit der Variablen $request als Parameter und weisen Sie sie der Variablen $rowcount zu. Drucken Sie die Variable $rowcount.

Codebeispiel:

#php 7.x
<?php
$conn = new mysqli($host, $username, $password, $database);
$sql = "SELECT * FROM users";
if ($result=mysqli_query($conn,$sql)) {
    $rowcount=mysqli_num_rows($result);
    echo "The total number of rows are: ".$rowcount; 
}
?>

Ausgabe:

The total number of rows are: 2

Verwenden Sie eine objektorientierte Methode, um die Anzahl der Zeilen in einer Tabelle mithilfe der Eigenschaft num_rows zu zählen

Wir können die Eigenschaft num_rows in PHP verwenden, um die Anzahl der Zeilen in einer MySQL-Tabelle zu zählen. Dieser Ansatz verwendet die objektorientierte Methode. Die Methode ist der zweiten Methode beim Erstellen der Datenbankverbindung und beim Schreiben der SQL-Abfrage ziemlich ähnlich. Die Verwendung vorbereiteter Anweisungen unterscheidet diese Methode von der zweiten. Wir verwenden die Funktion prepare(), um eine vorbereitete Anweisung zu erstellen, die Funktion execute(), um die vorbereitete Anweisung auszuführen, und die Funktion store_result(), um das Ergebnis zu speichern.

Weisen Sie beispielsweise den Variablen $host, $username, $password und $database den Hostnamen, den Benutzernamen, das Kennwort und den Datenbanknamen zu. Erstellen Sie mit dem Schlüsselwort new ein Objekt der Funktion mysqli() und übergeben Sie die Variablen als Parameter der Funktion. Weisen Sie den Wert des Objekts in der Variablen $conn zu. Schreiben Sie eine SQL-Abfrage, um alles aus der Tabelle users in der Variablen $sql auszuwählen.

Verwenden Sie eine Variable $stmt, um die vorbereitete Anweisung zu speichern. Verwenden Sie $conn vairable, um die Funktion prepare() aufzurufen, die die Variable sql als Parameter verwendet. Überprüfen Sie den booleschen Wert der Variablen $stmt mit der Bedingung if. Verwenden Sie in der Bedingung if die Variable $stmt, um die Funktion execute() und dann die Funktion store_result() aufzurufen. Rufen Sie dann die Eigenschaft num_rows auf und drucken Sie sie aus.

Beispielcode:

#php 7.x
<?php
$conn = new mysqli($host, $username, $password, $database);
$sql = "SELECT * FROM users";
if ($stmt = $conn->prepare($sql)) {
    $stmt->execute();
    $stmt->store_result();
    printf("Number of rows: %d.\n", $stmt->num_rows);
}
?>

Ausgabe:

Number of rows: 2.
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Verwandter Artikel - PHP MySQL