2010-04-06 7 views

Répondre

9

De l'documentation:

public bool SQLite3 :: exec (string $ query)

Exécute une requête-moinscontre une base de données.

Cette méthode renvoie un booléen, pas un jeu de résultats. Lorsque vous convertissez true en nombre entier, il devient 1.

Vous devez utiliser SQLite3::query(). Exemple (non testé):

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

BTW, en nommant l'instance de la classe $result SQLite3 peut être trompeur (en particulier dans un environnement DB). Je l'appellerais $db ou $connection.

+1

merci beaucoup pour cela! – Remover

+0

devrait être $ numRows = $ row ['COUNT (*)']; – Unplug

+1

@Unplug: Non, puisque le résultat de 'COUNT (*)' est stocké dans 'count': COUNT (*) 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; 
    } 
?> 

Cela m'a vraiment aidé cela fonctionne réellement vous pouvez essayer

0

Voici un moyen de travail pour obtenir le nombre de lignes puisque ni sqlite_num_rows($result) ni $result->numRows() œuvres 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(*)"]; 
     } 
?> 
Questions connexes