Database Aiuto classe per gestione database sqlite

Stato
Discussione chiusa ad ulteriori risposte.

Sevenjeak

Utente Gold
23 Settembre 2010
333
58
26
202
E da molto che non scrivo, scusate ma non ho il tempo per stare in questo forum, per fortuna ora un po di tempo lo ho.

Cmq, passiamo a noi.

Sto realizzando una classe per gestire un database sql, contenente, per ora, le seguenti funzioni:

  • Apertura / chiusura database.
  • Conteggio record tabella, con o senza filtro.
  • Esequzione query con l'insermento della funzione sqlite_escape_string().
Per ora la mia classe è questa:

PHP:
class Connect  
{ 
  var $sq = null; 
  var $sqerror = null; 
  var $lastquery = null; 

  function __construct($path) 
  { 
    $this->sq = sqlite_open($path, 0666, $this->sqerror)or die("Errore."); 
  } 

  function query($args) 
  { 
     if (func_num_args() > 1) { 
        $args = func_get_args(); 

        $this->lastquery = call_user_func_array("sprintf", addslashes($args)); 
         
        return sqlite_query($this->sq, $this->lastquery); 
     } 
  }     

  function query($args) 
  { 
     if (func_num_args() > 1) { 
        $args = func_get_args(); 
         
        for ($i = 0; $i < count($args); $i++) 
        { 
           if ($i > 0) { 
              $args[$i] = sqlite_escape_string($args[$i]); 
           } 
        }    
        
        $this->lastquery = call_user_func_array("sprintf", $args); 
         
        return sqlite_query($this->sq, $this->lastquery); 
     } 
  }   

  function records_count($args) 
  { 
     $args = func_get_args(); 
      
     if (func_num_args() == 1) { 
        $query = "SELECT * FROM " . $args[0]; 
     }elseif (func_num_args() == 2) { 
        $query = "SELECT * FROM " . $args[0] . " WHERE " . $args[1];  
     } 
      
     if (func_num_args() > 0 && func_num_args() < 3) { 
        $rows = sqlite_query($this->sq, $query); 
        return sqlite_num_rows($rows); 
     } 
  } 

  function close() 
  { 
    sqlite_close($this->sq); 
  } 
}

Tutte le funzioni vanno correttamente, eccetto la funzione query(), quest'ultima funziona per alcune query, tipo quella di inserimento, ma no in altre, tipo quella di selezione, per farvi un'esempio:

Io inizializzo la classe nella variabile $conn, per poi eseguire questo codice:

PHP:
$query = $conn->query("SELECT * FR0M %s", $_GET["category"]); 

while ($rs = sqlite_fetch_array($query)) 
{ 
   print_r($rs); 
}

Ma il codice non mi restituisce nessun risultato, e come se non mi eseguisse, anche se sono corrette, alcune query, come mai?
 
Stato
Discussione chiusa ad ulteriori risposte.