Ir para conteúdo

POWERED BY:

Arquivado

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

luisdorock

O que devo fazer?

Recommended Posts

Help por favor



function get_perfil_vendedor($id_vendendor) {

try {

$sql = "select v.id as id_vendedor, v.nome as vendedor_nome, tv.id as id_tipo_vendedor, tv.descricao tipo_vendedor

from vendedor as v

inner join tipo_vendedor as tv on tv.id = v.id_tipo_vendedor

where v.id = $id_vendendor";

mysql_connect(SERVIDOR, USUARIO, SENHA) or die(mysql_error());

mysql_select_db(BANCO) or die(mysql_error());

$rs = mysql2array($sql);

return $rs;

} catch (Exception $e) {

mysql_close();

}

}



( ! ) Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\sistema\consultas\vendedores.php on line 610

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta usar esse aqui no começo da página..

 

essa conexão é obsoleta...

ai apresenta o erro..

ele ta pedindo pra usar PDO ... mais ai teria que mudar bastante coisa.. coloca isso ai no começo da página que ta tudo certo.

<?php
error_reporting(0);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

tenta usar esse aqui no começo da página..

 

essa conexão é obsoleta...

ai apresenta o erro..

ele ta pedindo pra usar PDO ... mais ai teria que mudar bastante coisa.. coloca isso ai no começo da página que ta tudo certo.

<?php
error_reporting(0);
?>

 

Ele apenas ignorou o "erro" porém a função escolhida (faturar) não está sendo executada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente é só usar o Google Tradutor pra entender o erro:

Depreciado(!): mysql_connect (): A extensão mysql está obsoleto e será removido no futuro: use mysqli ou PDO vez disso em C: \ wamp \ www \ Sistema \ Consultas \ vendedores.php na linha 610

 

A extensão mysql_ está depreciada e será removida no futuro. Utilize mysqli_ ou PDO em vez disso. Simples assim.

 

Aqui segue minha classe de conexão com mysqli, caso queira. É uma classe razoavelmente simples, mas serve pra qualquer consulta ao banco de dados:

 

mysqli.php

$host = "localhost";
$usuario = "";
$senha = "";
$banco = "";
class Conexao extends mysqli {
    private static $_connected = false;
    private static $_instance = null;
    public function  __destruct() {
        $this->close();
    }
    public static function getInstance() {
        if (null === self::$_instance) {
            self::$_instance = new self ();
        }
        return self::$_instance;
    }
    public function connect() {
		global $host, $usuario, $senha, $banco;
        if(!self::$_connected) {
            parent::__construct(
                    $host,
                    $usuario,
                    $senha,
                    $banco
            );
            if(mysqli_connect_errno()) {
                throw new Exception('A Conexao falhou: '.mysqli_connect_error());
            }
            self::$_connected = true;
        }
    }
    public function close() {
 
        if(self::$_connected) {
            parent::close();
            self::$_connected = false;
        }
    }
    public function query($sql) {
        $this->connect();
        $result = parent::query($sql);
        if($result) {
            return $result;
        }
        else {
            throw new Exception('Query Exception: '.mysqli_error($this).' numero:'.mysqli_errno($this));
        }
    }
    public function ping() {
        if(@mysqli_ping($this)) {
            return true;
        }
        else {
            return false;
        }
    }
}

Pra usar a classe é só lançar uma tentativa e um catch pra capturar quaisquer erros. Veja um exemplo:

try{
	$conexao = Conexao::getInstance();
	$resposta = $con->query("SELECT * FROM tabela WHERE campo='valor' ORDER BY id DESC LIMIT 0,5");
	while($m=$resposta->fetch_array(MYSQLI_ASSOC)){
		echo $m["nome_do_cmapo_1"];
		echo "<br />";
		echo $m["nome_do_cmapo_2"];
	}
}catch(Exception $e){
	echo $e->getMessage();
}

// PARA FECHAR A CONEXÃO A QUALQUER MOMENTO:
$conexao->close();

É só trocar a query pela que quiser. Pode ser um UPDATE, DELETE ou qualquer coisa. Funciona exatamente do mesmo jeito que o mysql_, só é mais rápido, mais seguro e está no estilo orientado a objetos.

 

Se quiser contar as linhas afetadas:

$conexao->affected_rows;

 

Se quiser contar as linhas de um SELECT:

$conexao->num_rows;

 

Se quiser retornar o último ID inserido (caso tenha uma coluna AUT_INCREMENT):

$conexao->insert_id;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe outra opção. Você PRECISA trocar a sua forma de se conectar ao seu banco de dados. Seja pra mysqli ou pra PDO. A diferença entre as duas é que PDO serve pra incontáveis bancos de dados diferentes, então se um dia precisar trocar de plataforma já tem essa facilidade de não ter que alterar os seus códigos, em vez disso é só trocar o tipo de conexão.

 

Mysqli é rápido, seguro e tem suporte a prepared_statements, que aumenta absurdamente a sua segurança ainda. A classe que te passei não tem suporte a isso, então se quiser alguma que tenha é só procurar pelo Google que uma hora acaba achando alguma já pronta. Ou, se preferir fazer igual eu fiz, cria a sua própria quando já souber o suficiente da linguagem. E vai melhorando a classe com o tempo, claro.

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.