PHP básico: persistindo e acessando dados no MySQL

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (11)  (1)

Veja neste artigo como persistir e acessar dados em um banco MySQL utilizando PHP, através da criação de um cadastro básico.

Aprenda a efetuar as operações de CRUD com PHP e MySQL

Figura 1: Aprenda a efetuar as operações de CRUD com PHP e MySQL

Quando falamos em sistemas web nos dias de hoje é impossível não pensar em um cliente consumindo dados salvos em uma base, por tanto é imprescindível que um desenvolvedor tenha o conhecimento para tratar os dados utilizados pelo cliente através da programação.

Para entendermos como funciona o tratamento dos dados, vamos criar um cadastro de livros, onde o cliente poderá: ver os livros cadastrados, editar e inserir novos livros no banco. O famoso CRUD (create/read/update/delete).

Seguindo uma lógica de implementação, iremos primeirmamente partir pela criação do banco de dados.

Listagem 1: Arquivo para gerar a tabela livro – script.sql

CREATE DATABASE biblioteca;
use biblioteca;
CREATE TABLE IF NOT EXISTS `livro` (
  `id_livro` int(11) NOT NULL AUTO_INCREMENT,
  `cod_livro` int(11) NOT NULL,
  `nome_livro` varchar(150) NOT NULL,
  `desc_livro` varchar(150) NOT NULL,
  PRIMARY KEY (`id_livro`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 

Executando o código acima, criamos nosso banco denominado “biblioteca” e nossa tabela denominada “livro”, na qual vamos armazenar os dados dos livros.

Para que possamos iniciar a abstração dos dados, vamos criar uma classe denominada Conexao, onde definimos todas as transações que serão feitas e os dados para acesso ao servidor MySQL.

Listagem 2: Criando o arquivo conexao.php

//Variáveis de acesso Db
define('DB_SERVER', 'localhost');
define('DB_NAME', 'biblioteca');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
//inicio da classe de conexao
class Conexao {
    var $db, $conn;
    public function __construct($server, $database, $username, $password){
        $this->conn = mysql_connect($server, $username, $password);
        $this->db = mysql_select_db($database,$this->conn);
    }
...

No código acima, temos a definição dos parâmetros de acesso à base de dados, a criação da classe “Conexao” e seu respectivo construtor. No construtor, abrimos a conexão com a função do MySQL, mysql_connect, passando o servidor, nome do usuário e a senha como parâmetro. Em seguida, selecionamos a tabela que iremos trabalhar usando a função mysql_select_db, passando como parâmetro o nome da tabela e a conexão atual.

Dando início ao nosso CRUD, vamos criar nossa função insert no arquivo “conexao.php”:

Listagem 3: Bloco de código da função insert

/**
     * Função para inserir dados na tabela
     * @param array $dados Array contendo os dados a serem inseridos
     * @param string $tabela tabela que será inserido os dados
     */
    public function insert($tabela, $dados) {
        foreach ($dados as $key => $value) {
            $keys[] = $key;
            $insertvalues[] = '\'' . $value . '\'';
        }
        $keys = implode(',', $keys);
        $insertvalues = implode(',', $insertvalues);
        $sql = "INSERT INTO $tabela ($keys) VALUES ($insertvalues)";
        return $this->executar($sql);
    }

A função de “insert” recebe como parâmetro o nome da tabela e os dados que serão inseridos na mesma na forma de array. O foreach separa o nome da coluna da tabela na variável “Keys” e os seus respectivos valores em “insertValues”, logo após usando o comando implode, inserimos as virgulas entre os dados.

Vamos testar se o que fizemos até agora está funcionando? Para isso vamos criar um arquivo “index.php” contendo o seguinte código:

Listagem 4: Arquivo index.php

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once 'conexao.php';
        $conexao = new Conexao(DB_SERVER, DB_NAME, DB_USERNAME, DB_PASSWORD);        
        $dados = array('cod_livro' => 01, 'nome_livro' => 'livro exemplo 01', 'desc_livro' => 'Livro de exemplo');        
        $insert = $conexao->insert('livro', $dados);        
        if($insert == true){
            echo 'inserido';
        }
        ?>
    </body>
</html>

Após criarmos o arquivo index.php, colocar na pasta do seu servidor e acessar através do browser, deverá aparecer a mensagem “inserido”. Acessando o banco de dados podemos conferir que as informações estão realmente lá!

Nosso próximo passo é alterar a informação que acabamos de inserir. Para tal, vamos criar a função update dentro do arquivo “conexao.php”

Listagem 5: Função update

/**
     * Função para alterar os dados da tabela
     * @param string $tabela tabela onde será alterado os dados
     * @param string $colunaPrimary nome da coluna chave primaria
     * @param int $id id do dados a ser alterado
     * @param array $dados dados que serão inserido
     * @return boolean verdadeiro ou falso
     */
    public function update($tabela, $colunaPrimay, $id, $dados) {
        foreach ($dados as $key => $value) {
            $sets[] = $key . '=\'' . $value . '\'';
        }
        $sets = implode(',', $sets);
        $sql = "UPDATE $tabela SET $sets WHERE $colunaPrimay = '$id'";
        return $this->executar($sql); 
    }

A função de update é muito parecida com a de insert, a diferença é que na formação da query passamos o id do registro a ser alterado, assim como a coluna da chave primária.

Agora vamos testar? O procedimento vai ser idêntico ao que fizemos para o insert. Agora vamos criar um arquivo chamado update.php e inserir o seguinte código:

Listagem 6: Arquivo Update.php

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once 'conexao.php';
        $conexao = new Conexao(DB_SERVER, DB_NAME, DB_USERNAME, DB_PASSWORD);        
        $dados = array('cod_livro' => 01, 'nome_livro' => 'livro exemplo 03', 'desc_livro' => 'Livro de exemplo');        
        $insert = $conexao->update('livro', 'id_livro', 1, $dados);        
        if($insert == true){
            echo 'alterado';
        }
        ?>
    </body>
</html>

Para executar, o mesmo procedimento, no browser acesse o nome do arquivo e se ocorrer tudo bem deverá aparecer a mensagem “alterado”. Você pode modificar os dados dentro do array e verificar no banco as alterações sendo realizadas.

Avançando com nosso CRUD, vamos visualizar quais registros temos na nossa base através da função “select”, vamos abstrair os dados do banco e visualizá-los em tela.

Listagem 7: Função select dentro de “Conexao.php”

/**
     * Função de seleção dos registros da tabela
     * @param string $tabela Description
     * @param string $colunas string contendo as colunas separadas por virgula para seleção, se null busca por todas *
     */    
    public function select($tabela, $colunas = "*") {
        $sql = "SELECT $colunas FROM $tabela";
        $result = $this->executar($sql);
        return mysql_fetch_assoc($result);
    }

Função bem simples para a seleção dos dados. São passados apenas dois parâmetros: o nome da tabela e as colunas a serem selecionadas.

Para testar, vamos criar um arquivo chamado select.php e alimentá-lo com o seguinte código

Listagem 8: Conteúdo do arquivo select.php

/**
     * Função de seleção dos registros da tabela
     * @param string $tabela nome da tabela
     * @param string $colunas string contendo as colunas separadas por virgula para seleção, se null busca por todas *
     */
    public function select($tabela, $colunas = "*") {
        $sql = "SELECT $colunas FROM $tabela";
        $result = $this->executar($sql);
        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            $return[] = $row;
        }
        return $return;
    }

Uma simples classe que varre os registros na nossa base de dados. O laço While vai em todas as linhas da tabela e salva seus registros em um array. Para visualizar os dados da sua tabela vamos criar um arquivo “select.php” e inserir o código abaixo:

Listagem 9: Arquivo Select.php

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once 'conexao.php';
        $conexao = new Conexao(DB_SERVER, DB_NAME, DB_USERNAME, DB_PASSWORD);
        $select = $conexao->select('livro');        
        foreach ($select as $livro) {
            echo '================'.'</br>';
            echo 'Id = '.$livro['id_livro'].'</br>';
            echo 'Codigo = '.$livro['cod_livro'].'</br>';
            echo 'Nome = '.$livro['nome_livro'].'</br>';
            echo 'Descrição = '.$livro['desc_livro'].'</br>';
            echo '================'.'</br>';
        }
        ?>
    </body>
</html>

Para testar, acesse o arquivo através do browser e se ocorrer tudo bem você verá seus registros na tela.

Como vimos, é bastante simples persistir e acessar dados em uma base MySQL utilizando PHP. Então, finalizamos aqui este breve artigo. Até a próxima.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?