Contare le righe in MySQL PHP

Subodh Poudel 30 gennaio 2023
  1. Usa il metodo fetchColumn() di PDO per contare il numero totale di righe in una tabella MySQL
  2. Usa un metodo procedurale per contare il numero di righe nella tabella MySQL usando la funzione mysqli_num_rows()
  3. Usa un metodo orientato agli oggetti per contare il numero di righe in una tabella usando la proprietà num_rows
Contare le righe in MySQL PHP

Introdurremo un metodo per contare tutte le righe da una tabella in MySQL in PHP usando i metodi fetchColumn() e COUNT(). La funzione fetchColumn() è data da PDO (PHP Data Objects) e il metodo COUNT() è una funzione SQL. PDO è un modo orientato agli oggetti per connettere il database e il backend. Questo metodo è flessibile perché PDO è compatibile con 12 diversi sistemi di database.

Mostreremo un altro metodo per contare tutte le righe di una tabella usando la funzione mysqli_num_rows(). Questo metodo utilizza un modo orientato agli oggetti per stabilire la connessione al database con il server utilizzando la funzione mysqli(). Tuttavia, il resto del processo viene eseguito in modo procedurale.

Mostreremo un modo per contare tutte le righe di una tabella usando la proprietà num_rows in PHP. Questo metodo segue la pratica completa orientata agli oggetti per connettere il database e contare il numero totale di righe. L’uso dell’istruzione preparato in questo metodo lo rende al riparo dalla vulnerabilità di SQL injection.

Usa il metodo fetchColumn() di PDO per contare il numero totale di righe in una tabella MySQL

PDO è uno dei modi orientati agli oggetti per connettere il database con il server PHP. Possiamo usare il metodo fetchColumn() disponibile in PDO per contare le righe della tabella. In primo luogo, creiamo un database e popoliamo la tabella con i dati. Quindi, configuriamo la connessione al database utilizzando l’host, il nome utente del database, la password del database e il nome del database corretti. Usiamo un’istanza di un oggetto PDO per memorizzare la connessione. Una volta che ci siamo assicurati che la connessione al database funzioni, interroghiamo l’istruzione SQL usando la funzione COUNT() e la eseguiamo. La funzione COUNT() accetta * come parametro che conta tutte le righe nella tabella specificata. Quindi usiamo il metodo fetchColumn() per visualizzare il numero di righe nella tabella.

Le istruzioni seguenti presuppongono che sia stata stabilita una connessione al database con il server. Ci sono due righe nella tabella nel database.

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)

Ad esempio, in Test.php scrivi una classe denominata Test che eredita la classe DB. Scrivi una funzione pubblica getRowsNumber() all’interno della classe. Assegna una variabile $sql e scrivi una query utilizzando l’istruzione SELECT per selezionare tutto dalla tabella utenti. Usa COUNT(*) nell’istruzione SELECT per contare il numero di righe. Usa la funzione connect per ottenere la connessione da DB.php e interroga il comando SQL scritto sopra usando la funzione query(). Assegna queste attività a una variabile $stmt. Usa la variabile $stmt per chiamare il metodo fetchColumn() e visualizzare il risultato.

Nell’esempio seguente, la superclasse DB contiene un metodo connect() che contiene la connessione al database. La funzione getRowsNumber() viene invocata da un altro file php come:

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

Codice di esempio:

# 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;
    }
}

Produzione:

The total number of rows is: 2

Usa un metodo procedurale per contare il numero di righe nella tabella MySQL usando la funzione mysqli_num_rows()

Possiamo usare la funzione mysqli_num_rows() in PHP per contare le righe in una tabella MySQL. Possiamo creare un oggetto della funzione mysqli() per connettere il database con il server PHP. La funzione accetta nome host, nome utente, password e nome del database come parametri. Scriviamo l’istruzione SQL per selezionare ogni riga dalla tabella. Usiamo la funzione mysqli_query() per utilizzare la connessione al database ed eseguire la query. Quindi usiamo la funzione mysql_num_rows() per contare il numero di righe e visualizzarlo.

L’esempio seguente utilizza lo stesso database, la stessa tabella e gli stessi dati nella tabella del primo metodo.

Ad esempio, assegna il nome host, il nome utente, la password e il nome del database rispettivamente alle variabili $host, $ nomeutente, $password e $database. Crea un oggetto della funzione mysqli() usando la parola chiave new e passa le variabili come parametri della funzione. Assegna il valore dell’oggetto nella variabile $conn. Scrivi una query SQL per selezionare tutto dalla tabella utenti nella variabile $sql. Usa una variabile $result per memorizzare la funzione mysqli_query() che accetta le variabili $conn e $sql. Controlla il valore booleano della variabile $result utilizzando la condizione if. All’interno della condizione if usa mysqli_num_rows() con la variabile $request come parametro e assegnala alla variabile $rowcount. Stampa la variabile $rowcount.

Esempio di codice:

#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; 
}
?>

Produzione:

The total number of rows are: 2

Usa un metodo orientato agli oggetti per contare il numero di righe in una tabella usando la proprietà num_rows

Possiamo usare la proprietà num_rows in PHP per contare il numero di righe in una tabella MySQL. Questo approccio utilizza il metodo orientato agli oggetti. Il metodo è abbastanza simile al secondo metodo per creare la connessione al database e scrivere la query SQL. L’uso di dichiarazioni preparate differisce da questo metodo dal secondo. Usiamo la funzione prepare() per creare un’istruzione preparata, la funzione execute() per eseguire l’istruzione preparata e la funzione store_result() per memorizzare il risultato.

Ad esempio, assegna il nome host, il nome utente, la password e il nome del database rispettivamente alle variabili $host, $ nomeutente, $password e $database. Crea un oggetto della funzione mysqli() usando la parola chiave new e passa le variabili come parametri della funzione. Assegna il valore dell’oggetto nella variabile $conn. Scrivi una query SQL per selezionare tutto dalla tabella utenti nella variabile $sql.

Usa una variabile $stmt per memorizzare l’istruzione preparata. Usa $conn vairable per chiamare la funzione prepare() che prende la variabile sql come parametro. Controlla il valore booleano della variabile $stmt utilizzando la condizione if. All’interno della condizione if, usa la variabile $stmt per chiamare la funzione execute() e poi la funzione store_result(). E poi, chiama la proprietà num_rows e stampala.

Codice di esempio:

#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);
}
?>

Produzione:

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

Articolo correlato - PHP MySQL