Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou utilizando o Wamp na minha máquina e estou querendo conectar no servidor SQL que está em outra máquina, porém está aparecendo o seguinte erro:
Warning: mysqli::mysqli(): in C:\wamp\www\p\classes\Login.php on line 55
Warning: mysqli::set_charset(): Couldn't fetch mysqli in C:\wamp\www\project\classes\Login.php on line 58
Warning: Login::dologinWithPostData(): Couldn't fetch mysqli in C:\wamp\www\project\classes\Login.php on line 59
A linha 55 é essa:
$this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
Essas constantes são configuradas em **db.php **localizado dentro da pasta de config
define("DB_HOST", "192.168.0.3");
define("DB_NAME", "login");
define("DB_USER", "sa");
define("DB_PASS", "Sql#2200");
O projeto está nesse link para melhor entendimento [https://github.com/panique/php-login-minimal](https://github.com/panique/php-login-minimal)
Se eu fizer uma conexão no MYSQL funciona normalmente.Alterei para PDO e ficou assim:
$this->db_connection = new PDO ("sqlsrv:server=DB_HOST ; Database=DB_NAME", "DB_USER", "DB_PASS");
Agora está aparecendo esse erro:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08001]: [Microsoft][SQL Server Native Client 11.0]Provedor de Pipes Nomeados: Não foi possÃvel abrir uma conexão com o SQL Server [53]. ' in C:\wamp\www\login\classes\Login.php on line 55
PDOException: SQLSTATE[08001]: [Microsoft][SQL Server Native Client 11.0]Provedor de Pipes Nomeados: Não foi possÃvel abrir uma conexão com o SQL Server [53]. in C:\wamp\www\login\classes\Login.php on line 55
No adaptador da placa de rede, em TCP/IP v4, nas propriedades da placa de rede, em gateway está com o ip do roteador?
E no item avançados em WINS colocou o IP de todos os servidores e roteadores que você quer que tenham comunicação full-duplex dentro da rede da empresa?
Esse erro que está dando pode ser causado por uma máquina não estar enxergando a outra máquina.
Alterei e coloquei manualmente, ficou assim:
$this->db_connection = new PDO ("sqlsrv:server=192.168.0.3 ; Database=login", "sa", "Sql#2200");
Agora aparece essa mensagem de erro:
*Fatal error: Call to undefined method PDO::set_charset() in C:\wamp\www\login\classes\Login.php on line 58*
Segue linha 58:
if (!$this->db_connection->set_charset("utf8")) {
$this->errors[] = $this->db_connection->error;
}>
2 horas atrás, jdlucena disse:
Agora aparece essa mensagem de erro:
Fatal error: Call to undefined method PDO::set_charset() in C:\wamp\www\login\classes\Login.php on line 58
Segue linha 58:
if (!$this->db_connection->set_charset("utf8")) {
$this->errors[] = $this->db_connection->error;
}
UTF-8 no SQL = [http://rberaldo.com.br/problemas-com-codificacao-acentos-nao-interpretados/](http://rberaldo.com.br/problemas-com-codificacao-acentos-nao-interpretados/)
Não vais conseguir estabelecer ligação a um servidor SQL Server utilizando a extensão mysqli.
Para esse efeito, vais ter de usar PDO.