Ho abilitato il database MySql e ho inserito la mia prima tabella.
Ho creato una classe per gestire l'accesso al DB.
[code:1:c192b95925]
<?php
class DBFunction
{
var $connessione;
var $risultato;
function DBFunction()
{
$this->$connessione = mysql_connect("localhost", "username", "password")
or die("Connessione non riuscita: " . mysql_error());
mysql_select_db('my_database', $this->$connessione);
}
function Query($stringquery)
{
$this->$risultato = mysql_query($stringquery)
or die("Query fallita: " . mysql_error());
}
function Disconnect()
{
mysql_free_result($this->$risultato) or die("Free Result non riuscito: " . mysql_error());
mysql_close($this->$connessione) or die("Disconnessione non riuscita: " . mysql_error());
}
function num_rows()
{
return mysql_num_rows($this->$risultato);
}
function GetRiga($i)
{
if ($i < 0 ) return;
if (!mysql_data_seek($this->$risultato, $i))
echo "Non si può eseguire il seek alla riga $i: " . mysql_error() . "<br>\n";
Eseguendo lo script ottengo il messaggio:
Non si può eseguire il seek alla riga 1.
Free Result non riuscito:
Disconnessione non riuscita:
La cosa strana è che se dalla funzione query mi faccio restituire il valore $risultato e lo passo direttamente alla funzione $GetRiga, ottengo il risultato corretto.
Lo stesso dicasi per $connessione.
In questo modo ho trovato il workaround al problema, ma vorrei che fosse l'oggetto DBFunction a gestirsi tutte le variabili del caso.
Ho provato ad inserire qualche echo in giro giusto per debuggare il codice e alcune volte in $numrows mi sono ritrovato una variabile del tipo
resource ID #5, come se il PHP facesse casino con la gestione delle variabili pubbliche della classe.
C'è qualcuno che ha avuto problemi simili ?
Come li ha risolti ?