2010-04-06 11 views

risposta

9

Dal documentation:

bool SQLite3 pubblico :: exec (string $ query)

esegue un risultato meno query su un database.

Questo metodo restituisce un valore booleano, non un set di risultati. Quando converti true in un numero intero, diventa 1.

È necessario utilizzare SQLite3::query(). Esempio (non testata):

$rows = $result->query("SELECT COUNT(*) as count FROM USERIDS"); 
$row = $rows->fetchArray(); 
$numRows = $row['count']; 

Btw, nominando l'istanza della classe SQLite3 $result può essere fuorviante (soprattutto in un ambiente DB). Lo chiamerei $db o $connection.

+1

molte grazie per questo! – Remover

+0

dovrebbe essere $ numRows = $ row ['COUNT (*)']; – Unplug

+1

@Unplug: No, poiché il risultato di 'COUNT (*)' è memorizzato in 'count':' COUNT (*) come count'. –

12
$db = new SQLite3('filename.db3'); 
$count = $db->querySingle("SELECT COUNT(*) as count FROM tablename"); 
echo $count; 
2
$result = $db->query("SELECT * FROM db_name") 
$row=$result->fetchArray(SQLITE3_ASSOC); 
    // check for empty result 
    if ($row != false) { 
     // do something here if record exists 
    } 
0
<?php 
    function SqliteNumRows($query){ 
     $numRows = 0; 
     while($rows = $query->fetchArray()){ 
      ++$numRows; 
     } 
     return $numRows; 
    } 
?> 

Questo mi ha veramente aiutato effettivamente funziona si può provare

0

Ecco un modo di lavoro per ottenere il numero di righe poiché né sqlite_num_rows($result)$result->numRows() opere su SQLite3:

<?php 
    $db = new SQLite3('database.db'); 

    $results = $db->query('SELECT COUNT(*) FROM (SELECT `id`,* FROM `table` ORDER BY `id` ASC);'); 
     while ($row = $results->fetchArray()) { 
      echo $row["COUNT(*)"]; 
     } 
?> 
Problemi correlati