-
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";
if(!($riga = mysql_fetch_object($this->$risultato)))
{
echo "problemi";
return "";
}
return $riga;
}
}
?>
[/code:1:c192b95925]
Quindi ho provato ad eseguire con questo codice:
[code:1:c192b95925]
<?php
$MySql = New DBFunction();
$MySql->Query("SELECT * from MyTable");
$riga = $MySql->GetRiga(1);
echo $riga->field1;
$MySql->Disconnect();
?>
[/code:1:c192b95925]
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 ?
Grazie.
Gino
-
Caspita, hai troppo ragione.
Ora funziona tutto.
Ti voglio gia' bene !!!!! :D