Visualizzazione risultati 1 fino 2 di 2

Discussione: Classi e Variabili

  1. #1
    NonSoloCollant non è connesso Neofita
    Data registrazione
    12-09-2003
    Messaggi
    4

    Predefinito

    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

  2. #2
    NonSoloCollant non è connesso Neofita
    Data registrazione
    12-09-2003
    Messaggi
    4

    Predefinito

    Caspita, hai troppo ragione.

    Ora funziona tutto.

    Ti voglio gia' bene !!!!! :D

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •