Classe PHP banco de dados Issue Connection Âmbito
-
02-07-2019 - |
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?
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.