webmaster

Stored Procedure Com PHP E MySQL

Olá, Somos criadores de conteúdo apaixonados por web design, programação, criação de websites e tecnologias digitais. O nosso website está online! Explore a nova versão beta, onde terá acesso a novos recursos e melhorias. A sua experiência e feedback são muito importantes para nós! Novos artigos, todas as semanas! Fique atento.
Artigos SEO

Artigos SEO

Search Engine Optimization

Artigos WordPress

Criação de websites.

Tutoriais

Ensino numa série de passos simples

Stored Procedure Com PHP E MySQL

Há um tempo atrás publicamos várias matérias sobre o uso do Stored Procedure, porém, relacionados ao SQL.

Hoje estaremos publicando alguns comandos essenciais para seu uso junto ao MySQL.

Se você está começando agora em programação web e não sabe o que é Stored Procedure, falarei um pouco sobre ele abaixo antes de focarmos no assunto. ok?

O Que É Stored Procedure?

O Stored Procedure é uma coleção de comandos em SQL que tem por finalidade encapsular tarefas repetitivas, aceitando parâmetros de entrada e retornando um valor de status (para indicar aceitação ou falha na execução).

O procedimento armazenado pode reduzir o tráfego na rede, melhorar a performance, criar mecanismos de segurança, etc.

Geralmente o uso desta ferramenta é simple e facilita bastante o trabalho do Programador!

Abaixo vamos mostrar um exemplo simples que poderá facilitar e muito a vida de qualquer programador.

Estude, teste em seu Servidor e a partir dele, faça a adaptação para seus scripts!

Trabalhando Com A Stored Procedure

Agora que sabemos as vantagens em se usar um SP, vamos para um exemplo prático?

O exemplo que darei abaixo, pode ser usado em sistemas diversos, desde que seja corretamente customizado.

Criando as Tabelas:

Crie a tabela abaixo em sua base de dados, conforme o exemplo abaixo:


CREATE TABLE `cidade` (
`id_cidade` int(11) NOT NULL auto_increment,
`id_pais` int(11) default NULL,
`nome` varchar(80) default NULL,
`populacao` longtext,
PRIMARY KEY (`id_cidade`)
) TYPE=MyISAM;

DROP TABLE IF EXISTS `pais`;
CREATE TABLE `pais` (
`id_pais` int(11) NOT NULL auto_increment,
`nome` varchar(80) NOT NULL default '0',
`idioma` varchar(50) default NULL,
PRIMARY KEY (`id_pais`)
) TYPE=MyISAM;

Após criar as tabelas, vamos a um exemplo básico de stored procedure?

Criando a Stored Procedure:

DELIMITER $$

DROP PROCEDURE IF EXISTS `listar_paises` $$

CREATE PROCEDURE `listar_paises`(IN _id INT)

BEGIN
IF(_id IS NULL) THEN
SELECT * FROM pais;
ELSE
SELECT * FROM pais where id_pais = _id;
END IF;
END $$
DELIMITER ;

Vamos entender como funciona?

  • DELIMITER $$ – Servirá para informar onde começa e termina o sistema.
  • DROP PROCEDURE – Para excluir uma procedure, o procedimento é simples: Basta utilizar a cláusula “DROP PROCEDURE”, conforme o exemplo acima.
  • CREATE PROCEDURE – Essa é a parte onde solicitarei ao Sistema para criar uma Procedure, disponibilizando entre o BEGIN (que informará onde inicia) e END (que informará onde termina) os parâmetros.

Bem… eu já criei minha base de dados e criei junto ao phpMyAdmin a SP (conforme imagem a seguir).

Veja que no próprio phpMyADmin você terá a chance de testar o parâmetro criado, criando seu próprio código em PHP!

Abaixo vamos dar alguns exemplos para você implementar em seus scripts, ok?

Usando O PHP

Para efetuar uma conexão através do script em PHP, o procedimento também é básico. Basta seguir os detalhes descritos no código (conforme trecho abaixo):


conn = mysqli_connect($this->host, $this->usr, $this->pw, $this->db);
if (!$this->conn) {
echo "

Não foi possível conectar-se ao servidor MySQL.

\n" .
"

Erro MySQL: " . mysqli_connect_error() . "

\n";
exit();
} elseif (!mysqli_select_db($this->conn, $this->db)) {
echo "

Não foi possível selecionar o Banco de Dados desejado.

\n" .
"

Erro MySQL: " . mysqli_error($this->conn) . "

\n";
exit();
}
}

// Função para executar SPs (Stored Procedures). Utiliza-se a função mysqli_multi_query()
// porque as SPs retornam mais de um conjunto de resultados e a função mysqli_query() não consegue
// trabalhar com respostas múltiplas, ocasionando eventuais erros.
function execSP($sql) {
$this->connMySQL();
$this->sql = $sql;
if (mysqli_multi_query($this->conn, $this->sql)) {
$this->resultado = mysqli_store_result($this->conn);
$row = mysqli_fetch_row($this->resultado);
$this->closeConnMySQL();
mysqli_free_result($this->resultado);
return $row[0];
} else {
echo "

Não foi possível executar a seguinte instrução “.
“SQL:

$sql

\n".
"

Erro MySQL: " . mysqli_error($this->conn) . "

";
exit();
$this->closeConnMySQL();
}
}

//Função para encerramento da conexão com o banco de dados.
function closeConnMySQL() {
return mysqli_close($this->conn);
}
} // Finaliza a classe MySQL

//Instancia novo objeto da classe MySQL.
$mySQL = new MySQL;

?>

IMPORTANTE: Para usar as funcionalidades de Stored Procedure do MySQL, você deverá incluir a linha a seguir no “PHP.INI”:

“extension=php_mysqli.dll”.

Obs.: A DLL também deverá estar habilitada.

Em Servidores web com o CPanel, geralmente já vem configurado! Se for outra estrutura é necessário configurar manualmente.

– Para evitar erros, trabalhe na estrutura LAMP, pois nela você terá suporte ao PHP 5 e MySQL 5. Em outras versões poderá dar erro.

Bem… este foi apenas um pontapé inicial para iniciarmos os trabalhos com o Stored Procedure.

Nas próximas edições estaremos explorando o comando “CALL” e postando informações detalhadas que com certeza lhe ajudarão em seus Projetos.

Download do código usado neste tutorial: Store Procedure Com PHP E MySQL

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)

Deixe o seu comentário, participe!

3 Responses

  1. Gostei do tutorial. Ficaria melhor se o código fosse mais explicado e organizado. Por exemplo: mysqli_free_result é…

  2. Achei excelente esse tutorial, mais gostaria de saber como eu faço para colocar o resultado na minha tela index.php. Tentei assim mais não exibe nada … nem mesmo erro. Alguma dica ?

    <?php//Conexao com Banco de Dados// Fazemos nosso include da nossa classeinclude 'proc.php';//Instancia novo objeto da classe MySQL.$mySQL = new MySQL;$mySQL->execSP("call busca();");echo $mySQL->resultado;
    ?>

  3. Bom dia,
    Tenho uma duvida, criei a stored procedure certinha, mas nesse uso no php aonde vc passa o nome da stored procedure que voce criou ?
    Desde já agradeço a atenção.

Leave a Reply

Your email address will not be published. Required fields are marked *


Versão Beta

Estamos a mudar

Olá, Somos criadores de conteúdo apaixonados por web design, programação, criação de websites e tecnologias digitais. Ajudamos os nossos clientes a levar o conteúdo certo às pessoas certas, criando artigos e recursos que facilitam a criação e otimização de websites.

Artigos Populares

Guia Prático Sobre Segurança Do Joomla

Dicas para diminuir substancialmente o número de vetores de ataque ao Joomla! Proteja o seu trabalho!

Os Segredos Do Sucesso Na Internet

A responsabilidade. O querer. O erro e a experimentação. O social. A memória da internet. Ser quem você é.

38 Ideias Espetaculares Para Sites De Empresas

Encontre inspiração nestes 45 exemplos de sites de empresas para criar o site da sua empresa.

Stored Procedure Com PHP E MySQL

A Stored Procedure é um conjunto de comandos SQL que permitem trabalhar tarefas repetitivas. Saiba como trabalhar com Stored Procedure.