Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Johnison Almeida

mysqli não funciona

Recommended Posts

to usando o localhost e o msql ainda funciona mas quero mudar para mysqli só que quando eu troco o script não roda.

public function conecta(){
	$this->conexao = mysql_connect($this->servidor,$this->usuario,$this->senha,TRUE) or die	($this->trataErro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),TRUE));
	mysql_select_db($this->nomeBanco) or die($this->trataErro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),TRUE));
	mysql_query("SET NAMES 'utf8'");
	mysql_query("SET character_set_connection=utf8");
	mysql_query("SET character_set_client=utf8");
	mysql_query("SET character_set_results=utf8");
}//conecta

o que eu tenho que fazer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já que está usando objetos, use o objeto MySQLi. Vai ficar bem mais fácil, pois não precisa passar o link de conexão em todas as funções. Veja: http://rberaldo.com.br/a-extensao-mysqli-do-php/

 

 

Mas também recomendo usar PDO. É simples e te dá mais versatilidade. Se um dia quiser mudar o SGBD, terá de mudar bem pouca coisa no código. Veja: http://www.ultimatephp.com.br/como-usar-pdo-com-banco-de-dados-mysql/

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado Beraldo.. vou estudar e me atualizar com as suas dicas.
agora ainda com relação ao mysqli funcionou em quase todas as funções aqui exceto na mysqli_affected_rows.

$imoveis = new imoveis();
$imoveis->selecionaTudo($imoveis); //aqui a consulta esta funcionando certinho
$num_rows = mysqli_affected_rows($imoveis->selecionaTudo($imoveis)); //aqui da erro 

Warning: mysqli_affected_rows() expects parameter 1 to be mysqli, object given

 

quando estava mysql não precisava de parâmetro

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado Beraldo.. vou estudar e me atualizar com as suas dicas.

agora ainda com relação ao mysqli funcionou em quase todas as funções aqui exceto na mysqli_affected_rows.

imoveis = new imoveis();
$imoveis->selecionaTudo($imoveis); //aqui a consulta esta funcionando certinho
$num_rows = mysqli_affected_rows($imoveis->selecionaTudo($imoveis)); //aqui da erro 

Warning: mysqli_affected_rows() expects parameter 1 to be mysqli, object given

 

quando estava mysql não precisava de parâmetro

 

está correto a declaração do objeto ?

 

imoveis = new imoveis();

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só ler a mensagem de erro. Ela diz o problema: é esperado um objeto mysqli no primeiro parâmetro

 

esse objeto mysqli é o retorno de mysqli_connect. Você terá de usá-lo sempre. Por isso sugeri usar o objeto mysqli. Bema mais prático

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Beraldo e Thiago realmente, com certeza o que vocês falam como dicas eu procuro absorver.
usarei o objeto mysqli quando for fazer outro trabalho para não mudar todo o script aqui.

ele estava pedindo o parâmetro quando deixava sem, não tinha jeito mudei mysqli_affected_rows() por mysqli_num_rows atendeu a minha necessidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou vendo aqui, a mysqli_affected_rows() o parâmetro que ele recebe seria o da conexão e não o resultado da consulta,

 

Porem não é obrigatória, ele usa como conexão a ultima valida.

Você está confundindo com mysql_affected_rows.

mysqli_affected_rows exige um parâmetro. Veja: http://php.net/manual/pt_BR/mysqli.affected-rows.php

 

 

mysqli_num_rows atendeu a minha necessidade.

Tome cuidado.

num_rows serve para operações SELECT

INSERT, UPDATE e DELETE estão relacionados com affected_rows.

Se o seu caso é um SELECT, o certo é usar num_rows, mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está confundindo com mysql_affected_rows.

mysqli_affected_rows exige um parâmetro. Veja: http://php.net/manual/pt_BR/mysqli.affected-rows.php

 

 

Tome cuidado.

num_rows serve para operações SELECT

INSERT, UPDATE e DELETE estão relacionados com affected_rows.

Se o seu caso é um SELECT, o certo é usar num_rows, mesmo

Verdade Bernado, :assobiando: , a mysqli_affected_rows realmente precisa, Obrigado pela correção o/.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.