Pergunta

Para um novo projeto que estou fazendo em PHP Eu criei uma classe SQLMethods para se conectar ao banco de dados e executar consultas. Esta noite foi a primeira noite que eu realmente comecei a testá-lo (eu escrevi-lhe uma semana ou mais atrás e esqueci o assunto) e ocorreu um erro inesperado: Quando foi chamando meu ExecuteQuery function (), que não iria usar o banco de dados I selecionado no construtor.

O construtor:

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

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

        mysql_select_db($SQLDB, $SQLConnection);
    }

A função em questão:

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

Alguém ver o que o problema pode ser? Será que a ligação estreita depois da conclusão do construtor?

Foi útil?

Solução

Você deve declarar $ SQLConnection na sua classe, e você deve se referir a ele como

 $this->SQLConnection

e não simplesmente $ SQLConnection.

Outras dicas

$SQLConnection não existe dentro do método ExecuteQuery.

Você pode passá-lo diretamente como um parâmetro para ExecuteQuery, ou adicionar uma propriedade de classe sqlConnection que está definido no construtor e acessado como $this->sqlConnection dentro de seus métodos de classe.

O $SQLConnection ExecuteQuery() variável está tentando usar é criado dentro de outro escopo. (A função SQLMethods).

Os fecha a conexão quando o script PHP tem feito o seu trabalho ou se você fechar você mesmo (se a conexão é feita dentro desse roteiro)

Você deve ignorar a variável $SQLConnection dentro ExecuteQuery como afirma a documentação php.net

Se o identificador de conexão não for especificado, a ultima conexão aberta por mysql_connect() é assumido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top