2010-04-06 42 views

Respuesta

9

Desde el documentation:

SQLite3 public bool :: exec (string $ consulta)

realiza un consecuencia, menos consulta contra una base de datos dada.

Este método devuelve un valor booleano, no un conjunto de resultados. Cuando convierte true en un número entero, se convertirá en 1.

Debe usar SQLite3::query(). Ejemplo (no probado):

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

Por cierto, nombrando a la instancia de la clase SQLite3 $result puede ser engañoso (especialmente en un entorno DB). Lo llamaría $db o $connection.

+1

muchas gracias por esto! – Remover

+0

debe ser $ numRows = $ row ['COUNT (*)']; – Unplug

+1

@Unplug: No, ya que el resultado de 'COUNT (*)' se almacena en 'count':' COUNT (*) como 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; 
    } 
?> 

Esto realmente me ayudó funciona en realidad es posible que pruebe

0

Aquí es una forma de trabajo para obtener el número de filas ya que ni sqlite_num_rows($result) ni $result->numRows() trabajos sobre 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(*)"]; 
     } 
?> 
Cuestiones relacionadas