Pregunta

Para un nuevo proyecto que estoy haciendo en PHP, he creado una clase SQLMethods para conectarme a la base de datos y realizar consultas. Esta noche fue la primera noche que pude probarlo (lo escribí hace aproximadamente una semana y me olvidé de él) y ocurrió un error inesperado: cuando estaba llamando a mi función ExecuteQuery (), no usaría la base de datos I seleccionado en el constructor.

El constructor:

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

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

        mysql_select_db($SQLDB, $SQLConnection);
    }

La función en cuestión:

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

¿Alguien ve cuál podría ser el problema? ¿Se cierra la conexión después de que se completa el constructor?

¿Fue útil?

Solución

debe declarar $ SQLConnection en su clase y debe referirse a él como

 $this->SQLConnection

y no simplemente $ SQLConnection.

Otros consejos

$ SQLConnection no existe dentro del método ExecuteQuery .

Puede pasarlo directamente como parámetro a ExecuteQuery , o agregar una propiedad de clase sqlConnection que se establece en el constructor y se accede a ella como $ this- > sqlConnection dentro de sus métodos de clase.

La variable $ SQLConnection ExecuteQuery () que se intenta utilizar se crea dentro de otro ámbito. (La función SQLMethods ).

La conexión se cierra cuando el script PHP ha funcionado o si lo cierra usted mismo (si la conexión se realiza dentro de ese script)

Debería omitir la variable $ SQLConnection dentro de ExecuteQuery como se indica en la documentación de php.net

  

Si no se especifica el identificador del enlace, se asume el último enlace abierto por mysql_connect () .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top