ciao a tutti,
stavo facendo una classe che estende mysqli
e nell'implementazione del metodo che dovrebbe fare da wrapper a mysqli_result_fetch_assoc()
ho un comportamento sbagliato che non riesco a correggere.
riducendo all'osso il codice ecco quello che ho scritto.
codice:
<?
class db extends mysqli
{
public $result;
public $db_row;
public $sql;
[...]
public function db_query()
{
if($this->sql == "")
die("Stringa SQL vuota!");
$this->result = parent::query(parent::real_escape_string($this->sql));
if($this->result === FALSE)
{
die('Errore nella query '.msqli_error());
return false;
}
else
return true;
}
public function db_fetch()
{
$this->db_row = $this->result->fetch_assoc();
}
}
?>
se lo utilizzo in maniera ortodossa e cioè così, non funziona
codice:
$ldb = new db;
$ldb->sql = "SELECT * FROM usrusers;";
$ldb->db_query();
while($ldb->db_fetch())
echo "
".$ldb->db_row['usrlogin']." - ".$ldb->db_row['usrpwd']." - ".$ldb->db_row['usrlabel']."</p>";
se lo utilizzo così e cioè senza usare il mio metodo di db_fetch() invece funziona
codice:
$ldb = new db;
$ldb->sql = "SELECT * FROM usrusers;";
$ldb->db_query();
while($row = $ldb->result->fetch_assoc())
echo "
".$row['usrlogin']." - ".$row['usrpwd']." - ".$row['usrlabel']."</p>";
sulla pagina quando uso la versione ortodossa non mi dà nessun errore.
semplicemente non stampa niente
cosa sbaglio?
grazie mille in anticipo a tutti
cyb