Domanda

Per un nuovo progetto che sto realizzando in PHP ho creato una classe SQLMethods per connettermi al database ed eseguire query. Stasera è stata la prima notte che ho avuto modo di testarlo (l'ho scritto una settimana fa e me ne sono dimenticato) e si è verificato un errore imprevisto: quando chiamava la mia funzione ExecuteQuery (), non utilizzava il database I selezionato nel costruttore.

Il costruttore:

    public function SQLMethods() {
        $SQLConnection = mysql_connect($SQLDBAddress, $SQLUserName, $SQLPassword);

        if (!$SQLConnection) {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($SQLDB, $SQLConnection);
    }

La funzione in questione:

    public function ExecuteQuery($Query) {
        mysql_query($Query, $SQLConnection) or die('Could not perform query: ' . mysql_error());
    }

Qualcuno vede quale potrebbe essere il problema? La connessione si chiude al termine del costruttore?

È stato utile?

Soluzione

dovresti dichiarare $ SQLConnection nella tua classe e dovresti fare riferimento ad esso come

 $this->SQLConnection

e non semplicemente $ SQLConnection.

Altri suggerimenti

$ SQLConnection non esiste nel metodo ExecuteQuery .

Puoi passarlo direttamente come parametro a ExecuteQuery , oppure aggiungere una proprietà di classe sqlConnection impostata nel costruttore e accessibile come $ this- > sqlConnection all'interno dei metodi della tua classe.

La variabile $ SQLConnection ExecuteQuery () che sta tentando di utilizzare viene creata in un altro ambito. (La funzione SQLMethods ).

La connessione si chiude quando lo script PHP ha funzionato o se lo si chiude da soli (se la connessione viene stabilita all'interno di quello script)

Dovresti saltare la variabile $ SQLConnection in ExecuteQuery come indicato dalla documentazione di php.net

  

Se l'identificatore del collegamento non viene specificato, viene assunto l'ultimo collegamento aperto da mysql_connect () .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top