Ir para conteúdo

POWERED BY:

Arquivado

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

luisdorock

Código com MYSQL_

Recommended Posts

Boa tarde galera!

 

Segue abaixo a imagem da mensagem, estou tentando migra o código para a plataforma PHP5 MYSQLI porém me acontece esse pequeno "erro".

 

http://i.imgur.com/ZdQ55Vm.png

 

Abaixo segue a linha de código que o "erro" se refere:

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();
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está tentando migrar para mysqli_, porque está usando mysql_ para conectar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, essa é a questão...

 

Não sei como migrar

 

Já tentei colocar o i nos mysql mas não resolveu

 

 

Se eu fosse migrar ficaria assim?:

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";        mysqli_connect(SERVIDOR, USUARIO, SENHA) or die(mysqli_error());        mysqli_select_db(BANCO) or die(mysqli_error());        $rs = mysqli2array($sql);        return $rs;    } catch (Exception $e) {        mysqli_close();    }}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na minha opinião você deveria pular o mysqli_ e ir direto para o PDO

<?php

//conexão com o bd, pode ser qlq bd seja mysql ou postgre
try {
	$db = new PDO($host, $usuario, $senha,array( PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8' ));
	$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
	if($e->getCode() == 1049){
		echo "Banco de dados errado.";
	}else{
		echo $e->getMessage();
	}
}

function get_perfil_vendedor($id_vendendor) {
    try {
        $sql = $db->prepare("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");
        $sql->execute();
    } catch (PDOException $e) {
        echo $e->getMessage();
    }

    return $rs = $sql->fetch(PDO::FETCH_OBJ);
}

?>

Quando você for imprimir um valor não vai usar ['valor'] e sim ->valor, exemplo abaixo

<?php

$rs->tipo_vendedor;

?>

Qualquer dúvida estamos ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para facilitar vou postar para você três formas de fazer essa conexão com PDO

 

Uma consulta em PDO em apenas uma linha segue abaixo.

<?php

//código similar ao mysql_query
$variavel = $conn->query('SELECT * FROM tabela WHERE 1');

//código similar ao mysql_fetch_array
$reg = $variavel->fetch(PDO::FETCH_OBJ);

//para imprimir um algo pode usar
echo $reg->campo;

?>

Eu testei e funciona.

Segue um exemplo de select com PDO 100% segura

<?php
 
//temos aqui a query, o :table e :id é como se fose uma icognita
$sql = 'SELECT * FROM :table WHERE id = :id';
 
//try/catch similar ao if/else
try{
    //aqui eu chamo a variavel de conexão $conn dentro de qualquer variavel
    $consulta_sql = $conn->prepare($sql);
    //aqui estou usando o bindvalue para preencher nossa icognita :table
    $consulta_sql->bindValue(':table', $tabela, PDO::PARAM_STR);
    //aqui estou usando o bindvalue para preencher nossa icognita :id
    $consulta_sql->bindValue(':id', $id, PDO::PARAM_INT);
    //aqui estou executando todos esses dados
    $consulta_sql->execute();
} catch (PDOException $e) {
    //se der algum erro ele vai exibir aqui
    echo $e->getMessage();
}

//similar ao mysql_fetch_array
$reg = $consulta_sql->fetch(PDO::FETCH_OBJ);

//depois disso os valores vão ser impressos assim
echo $reg->campo
 
?>

exemplo de conexão sem o bindValue:

<?php

//poe nesse array todas as variaveis
$dados= array($dado, $id);

//try/catch é similar ao if/else
try{
    //chamando a variavel de conexão $db, o metodo prepare joga aquery dentro da conexão
    $consulta = $db->prepare('UPDATE tabela SET `dado`= ? WHERE id= ?');
    //executando todos os dados, passo meu array dentro do execute direto
    //ele vai substituir todas as icognitas na ordem que meu array está
    $consulta->execute($dados);
} catch (PDOException $e) {
    //aqui printa se der algum erro
    echo $e->getMessage();
}

//similar ao mysql_fetch_array
$reg = $consulta_sql->fetch(PDO::FETCH_OBJ);

//depois disso os valores vão ser impressos assim
echo $reg->campo

?>

o pensamento é simples amigo, se antes você chamava um dado com $variavel['campo'], agaora vai chamar com $variavel->campo, fica até mais elegante no código sauhaushuahsas.

qualquer dúvida estamos ai.

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.