Usando Storeds Procedures do MySQL no PHP

Nos posts anteriores vimos com como criar e quais as vantagens de utilizar Storeds Procedures. Agora veremos como utilizar estas procedures aliadas ao PHP.

Por | @oficinadanet Programação
Nos posts anteriores vimos com como criar e quais as vantagens de utilizar Storeds Procedures. Agora veremos como utilizar estas procedures aliadas ao PHP.

Primeiramente devemos saber que para chamar as procedures do Mysql no php nós devemos utilizar a extensão MySqli, que já vêm por padrão instalada no php.

Nós utilizaremos o banco criando nos posts anteriores por questão de praticidade. Você pode baixá-lo aqui.

Então vamos fazer uma página para listar as cidades.


error_reporting(E_ALL);
$conn = mysqli_connect("localhost","root", "") or die(mysqli_error());
mysqli_select_db($conn, "cidades") or die(mysqli_error()) ;

$result = mysqli_query($conn, "call listar_cidades( null )") or die(mysqli_error());
?>



Usando Storeds Procedures do MySql no PHP


Listar Cidades



    
        
        
        
        
    
    
        
            
            
            
            
        
    
Id da cidadeNome da CidadePopulaçãoCod. do País





Agora vamos chamar uma procedure passando parâmetros para ela. Para isso utilizaremos preparated statements.


$conn = mysqli_connect("localhost","root", "") or die(mysqli_error());
mysqli_select_db($conn, "cidades") or die(mysqli_error()) ;

/* Aqui criamos um preparated statment */
if ($stmt = mysqli_prepare($conn, "call listar_populacao_pais(?)")) {

    /* Atribuimos um valor ao '?' */
    $id_pais = 1;

    mysqli_stmt_bind_param($stmt, "i", $id_pais);

    /* Executamos o statment */
    mysqli_stmt_execute($stmt);

    /* Atribuimos os resultados as variaveis */
    mysqli_stmt_bind_result($stmt, $id, $nome, $idioma, $populacao);

    /* Damos um parse na resultado */
    mysqli_stmt_fetch($stmt);

    /* Fechamos statement */
    mysqli_stmt_close($stmt);
}
?>


Usando Storeds Procedures do MySql no PHP


Exibir informações do Pais



    
        
        
        
        
    
    
        
        
        
        
    
Id do PaísNome do PaísIdiomaPopulação




Vamos a explicação:

Aqui criamos o preparated Statment, para cada “?” temos um parâmetro a ser passado
$stmt = mysqli_prepare($conn, "call listar_populacao_pais(?)")

Depois para cada “?” ( parâmetro ), nós atribuímos um valor
mysqli_stmt_bind_param($stmt, "i", $id_pais);

nesse comando passamos o nosso statment $stmt, o tipo de variavél, e o valor.

O tipos de variáveis possíveis são :
“i” para inteiros
“d” para double ( números com casas decimais )
“s” para Strings de texto
“b” para Blobs ( arquivos binários )

Depois de atribuídos os parâmetros nos executamos o statment
mysqli_stmt_execute($stmt);

Depois é a hora de atribuir os campos do resultado à variáveis, para cada coluna no resultado nos passaremos uma variável para receber os valores daquela coluna.
mysqli_stmt_bind_result($stmt, $id, $nome, $idioma, $populacao);

Por fim damos um parse no resultado
mysqli_stmt_fetch($stmt);

E fechamos o Statment
mysqli_stmt_close($stmt);

Vale lembrar que você também fazer uma chamada direta a procedure, ou seja usar o statment.
$result = mysqli_query($conn, "call listar_populacao_pais(1)");

A vantagem dos Statments é que você pode reutiliza-los antes de fecha-los, basta passar novos parâmetros e executa-lo de novo.

Como podemos perceber , utilzar storeds procedures aliada há uma linguagemde programação é bem simples e vale a pena utilza-las, pois as vantagens são muitas, sobretudo em segurança e desempenho.

Até a próxima.

Mais sobre: mysql php banco de dados
Share Tweet
Recomendado
Comentários
Carregar comentários
Destaquesver tudo
  • ASSINE NOSSA NEWSLETTER

    As melhores publicações no
    seu e-mail

  • Preencha para confirmar