Finalmente dopo tanto posso riscrivere nel forum, come avrete notato non posso connettermi quasi mai, visto che non ho tempo.
Cmq, 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 qui:
Codice 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:
Codice PHP:
$query = $conn->query("SELECT * FR0M %s", $_GET["category"]);
while ($rs = sqlite_fetch_array($query))
{
print_r($rs);
}
Ma non mi restituisce nessun risultato, e come se non mi eseguisse, anche se sono corrette, alcune query, come mai?