Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá boa noite estou estudando php, porém na hora de fazer conexão com o BD, não conecta de jeito nenhum, os nomes do banco estão corretos, o ja importei o banco e nada alguém sabe o que pode ser?
Conexão com o banco
<?php
/**
* classe que trata de conexao com o BD e operações
*/
class Conexao {
private $host;
private $user;
private $senha;
private $bd;
private $link;
public $query;
public $lista;
//private $tabela;
/**
* funcao construtora que inicia o link caso esteja null
*/
function __construct() {
if ($this->link == NULL):
$this->getConexao();
endif;
}
/**
* faz a conexao caso não tenha valores no LINK
*/
public function getConexao(){
$this->host = 'localhost';
$this->user = 'root';
$this->senha = '';
$this->bd = 'imob';
$this->link = mysql_connect($this->host, $this->user, $this->senha) or die('Erro de conexao');
mysql_select_db($this->bd, $this->link);
mysql_set_charset('UTF8', $this->link);
}
/**
*
* @param type $sql - passo a minha sql
*/
public function ExecSQL($sql){
$this->query = mysql_query($sql, $this->link) or die(mysql_error());
}
/**
*
* @return type - retorna a lista de registros
*/
public function ListarDados(){
$this->lista = mysql_fetch_assoc($this->query);
return $this->lista;
}
/**
*
* @return type - retorna a contagem dos registros s query
*/
public function TotalRegistros() {
return mysql_num_rows($this->query);
}
}
<?php
/**
* classe que trata de conexao com o BD e operações
*/
class Conexao {
private $host;
private $user;
private $senha;
private $bd;
private $link;
public $query;
public $lista;
//private $tabela;
/**
* funcao construtora que inicia o link caso esteja null
*/
function __construct() {
if ($this->link == NULL):
$this->getConexao();
endif;
}
/**
* faz a conexao caso não tenha valores no LINK
*/
public function getConexao(){
$this->host = 'localhost';
$this->user = 'root';
$this->senha = '';
$this->bd = 'imob';
$this->link = mysql_connect($this->host, $this->user, $this->senha) or die('Erro de conexao');
mysql_select_db($this->bd, $this->link);
mysql_set_charset('UTF8', $this->link);
}
/**
*
* @param type $sql - passo a minha sql
*/
public function ExecSQL($sql){
$this->query = mysql_query($sql, $this->link) or die(mysql_error());
}
/**
*
* @return type - retorna a lista de registros
*/
public function ListarDados(){
$this->lista = mysql_fetch_assoc($this->query);
return $this->lista;
}
/**
*
* @return type - retorna a contagem dos registros s query
*/
public function TotalRegistros() {
return mysql_num_rows($this->query);
}
}A primeira coisa que devo falar é sobre a versão do servidor e do php. Como em outro tópico disse que estava usando o Xampp que sempre tem seu PHP atualizado.
Faremos um debug no seu arquivo principal. Vá a pasta raiz do site edite o arquivo index.php e coloque isso antes de qualquer coisa:
Spoiler
<?php
if (version_compare(PHP_VERSION, '7.0', '<')) {
echo ("<h1>Opa!</h1>"
. "<p>Se isso apareceu sua versão do PHP é " . PHP_VERSION . "</p>"
. "Ou seja vamos dizer adeus ao ineficaz mysql, que tal tentar usar PDO ou mysqli?"
. "<hr />");
if (extension_loaded('pdo')) {
echo ("<span style=\"color: red\">Se esse texto em vermelho apareceu é porque o sistema comporta"
. "o uso das bibliotecas PDO, porque não usa ela?");
}
exit();
}
?>
Em todo caso como o suspeito é sua versão do PHP moderna e eficaz, que não funciona com a antiga biblioteca mysql.
Você então tem 2 alternativas.
Atualizar toda a estrutura do site o que vai modificar todo assunto relacionado a conexão. Se for feito por um programador experiente ele faz em alguma horas, por alguém inexperiente pode levar dias e pode não conseguir.
Ou refazer todo o site já usando o que é mais eficaz de seguro usar quando o assunto for conexão com banco de dados.>
15 horas atrás, Barbara123 disse:
fiz isso entretanto não resolve
claro que não; precisa ajustar tambem o codigo.
mas ai é PHP.
de qualquer forma verifique se o Mysql está iniciando;
o XAMPP não inicia nem o Mysql nem o Apache, você tem que fazer isso manualmente sempre que iniciar o Windows.>
48 minutos atrás, Fernando C disse:
claro que não; precisa ajustar tambem o codigo.
mas ai é PHP.
de qualquer forma verifique se o Mysql está iniciando;
o XAMPP não inicia nem o Mysql nem o Apache, você tem que fazer isso manualmente sempre que iniciar o Windows.
Na verdade sim o Xampp você não precisa ficar ativando. Por exemplo em **C:\xampp\apache** existe um arquivo de lotes **apache_installservice.bat** que serve para adicionar o apache aos serviços do sistema iniciando junto ao arranque do windows.
Porém como a microsoft só faz m***** mesmo, a partir do windows 8 é necessário fazer modificações nos registros do sistema para que possa usufruir dessa funcionalidade.
funcoes mysql* foram removidas, você devera instalar
as extensões PDO ou MySQLi.
aqui tem boas dicas de como exibir mensagens de erro: