Question

Pour un nouveau projet que je réalise en PHP, j'ai créé une classe SQLMethods pour se connecter à la base de données et effectuer des requêtes. Ce soir, c’est la première nuit où j’ai pu le tester (je l’ai écrit il ya une semaine et je l’avais oublié) et une erreur inattendue s’est produite: lorsqu’elle appelait ma fonction ExecuteQuery (), elle n’utilisait pas la base de données. sélectionné dans le constructeur.

Le constructeur:

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

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

        mysql_select_db($SQLDB, $SQLConnection);
    }

La fonction en question:

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

Est-ce que quelqu'un voit ce que le problème pourrait être? La connexion se ferme-t-elle une fois le constructeur terminé?

Était-ce utile?

La solution

vous devez déclarer $ SQLConnection dans votre classe et vous y référer

 $this->SQLConnection

et pas simplement $ SQLConnection.

Autres conseils

$ SQLConnection n'existe pas dans la méthode ExecuteQuery .

Vous pouvez le transmettre directement en tant que paramètre à ExecuteQuery ou ajouter une propriété de classe sqlConnection définie dans le constructeur et accessible en tant que $ this- > sqlConnection dans vos méthodes de classe.

La variable $ SQLConnection ExecuteQuery () que vous essayez d'utiliser est créée dans une autre étendue. (Fonction SQLMethods ).

La connexion se ferme lorsque le script PHP a terminé son travail ou si vous le fermez vous-même (si la connexion est établie dans ce script)

Vous devez ignorer la variable $ SQLConnection dans ExecuteQuery , comme indiqué dans la documentation php.net

  

Si l'identifiant du lien n'est pas spécifié, le dernier lien ouvert par mysql_connect () est utilisé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top