Contare le righe in MySQL PHP
-
Usa il metodo
fetchColumn()
di PDO per contare il numero totale di righe in una tabella MySQL -
Usa un metodo procedurale per contare il numero di righe nella tabella MySQL usando la funzione
mysqli_num_rows()
-
Usa un metodo orientato agli oggetti per contare il numero di righe in una tabella usando la proprietà
num_rows
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 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