Sunteți pe pagina 1din 25

Curso Bsico de PHP

Breno Santana Santos


brenosantos@itatechjr.com.br

PHP com BD
Curso ofertado pela Itatech Group Jr.

Departamento de Sistemas de Informao DSI/UFS/Itabaiana


Itatech Group Jr Softwares Itabaiana Jr.
www.itatechjr.com.br contato@itatechjr.com
Agenda

Integrao do PHP com Banco de Dados


Banco de Dados compatveis com o PHP
Interface do Objeto MySQLi

Conexo

Execuo de Query's SQL

Recuperando Dados para a Exibio

Fechando a conexo
Interface MySQL

2
Integrao do PHP com Banco de Dados

Banco de Dados so frequentemente utilizados


para o armazenamento de grande volumes de
dados dos Sistemas de Informao.
Essas informaes armazenadas em BD so
consideradas persistentes, devido ao fato de
estarem disponveis aps o trmino da execuo
da aplicao.
Grande parte das Linguagens de Programao
prov meios (interfaces) de acesso e
manipulao de dados em BD via SGBD.
Permite armazenar e recuperar as informaes
dinmicas em relao ao contedo de um 3
sistema Web.
Integrao do PHP com Banco de Dados

4
Banco de Dados compatveis com o
PHP
Os principais banco de dados (SGBD) compatveis
com o PHP so:
IBM DB2;
Firebird / InterBase;
Ingres;
mSQL;
MSSQL (SQL Server);
Oracle;
PostgreSQL;
SQLite / SQLite3;
5
Sybase.
Interface do Objeto MySQLi

O PHP tem muitas interfaces diferentes para


ferramenta de banco de dados MySQL.
A interface orientada a objetos que conhecida
como extenso do MySQL Melhorado, o
MySQLi.

6
Interface do Objeto MySQLi Conexo

Para utilizar o MySQLi, inicialmente devemos


estabelecer conexo com o SGBD MySQL, ou
seja, instanciar um objeto da classe MySQLi.
Sintaxe:
$variavel = new mysqli(servidor,
usuario, senha, nome_banco);
Instancia-se a classe MySQLi em um objeto
com o identificador da varivel $variavel.

7
Interface do Objeto MySQLi Conexo

Isto nos d acesso ao prprio mecanismo do BD


dentro do cdigo PHP. Acessaremos
especificamente as tabelas e outros dados do BD
especificado.
Assim que essa classe for instanciada na varivel
especificada, poderemos usar os mtodos nesse
objeto para fazer nosso BD funcionar.

8
Interface do Objeto MySQLi Execuo
de Query's SQL
O mtodo query o mtodo de consulta da
classe e ao mesmo tempo, permite testar seu
valor de retorno para determinar se foi bem-
sucedido (TRUE) ou no (FALSE) a execuo da
query SQL.
Permite executar instrues SQL do tipo DML:
SELECT, INSERT, UPDATE e DELETE.
Sintaxe:
$variavel -> query(comandoSQL);

Considerando que $variavel contm uma


instncia do objeto MySQLi. 9
Interface do Objeto MySQLi
Recuperao de Dados para a Exibio
O mtodo query permite executar comandos
SQL. Caso o comando seja um INSERT, UPDATE
ou DELETE, o valor de retorno ser TRUE se for
bem-sucedido, caso contrrio FALSE. Mas se o
comando SELECT, o valor de retorno um objeto
de resultado (ResultSet) que contm qualquer
dado retornado. Ao final esse objeto de resultado
deve ser fechado, limpo ou destruir a classe na
memria, enfim chamar o mtodo close.
Sintaxe:
$resultSet -> close();
10
Interface do Objeto MySQLi
Recuperao de Dados para a Exibio
O mtodo fetch_assoc do objeto de resultado
fornece uma linha de dados por vez na forma de
array associativo e seu valor de retorno contm
os dados de uma linha.
Sintaxe:
$linhaSELECT = $resultSet -> fetch_assoc();

O mtodo multi_query permite que voc execute


diversos comandos SQL na mesma instruo.
Sintaxe:
$variavel -> multi_query(comandoSQL_1;
comandoSQL_2; ...; comandoSQL_n); 11
Interface do Objeto MySQLi
Recuperao de Dados para a Exibio
Considerando que $variavel contm uma
instncia do objeto MySQLi.
Podemos utilizar o atributo num_rows da classe
de resultado para retornar o nmero de linhas
retornadas por um comando SELECT executado
pelo mtodo query.
Sintaxe:
$resultSet -> num_rows

12
Interface do Objeto MySQLi
Fechando a conexo
O mtodo close permite limpar e destruir a
instncia da classe MySQLi na memria, ou seja,
fecha a conexo com o BD.
Sintaxe:
$variavel -> close();

Instancia-se a classe MySQLi em um objeto


com o identificador da varivel $variavel.

13
Interface do Objeto MySQLi

Exemplo Parte 01:


<?php
function insereExibirDadosExemplo(){
$obj_mysqli = new mysqli(MYSQL_SERVER,
MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE);

for($i = 0; $i < 5; $i++){


$querySQL = "INSERT INTO TB_EXEMPLO
VALUES (" . rand(0, 50) . ", '" .
sha1(str_shuffle("Curso de PHP -
MySQLi")) . "');";
$obj_mysqli -> query($querySQL);
}

14
Interface do Objeto MySQLi

Exemplo Parte 02:


$querySQL = "SELECT * FROM TB_EXEMPLO;";
$resultado = $obj_mysqli -> query($querySQL);
for($i = 0; $i < $resultado -> num_rows; $i++){
$linhaSELECT =
$resultado -> fetch_assoc();
echo $linhaSELECT["CODIGO"] . " - " .
$linhaSELECT["TEXTO"] . "<br>";
}
$resultado -> close();
$obj_mysqli -> close();
}

insereExibirDadosExemploMySQLi();
15
?>
Interface MySQL

Funciona de forma similar ao MySQLi, exceto


pelo fato do MySQLi ser Orientado a Objeto e a
interface MySQL procedural.
Interface mais antiga que o MySQLi para prover
manipulao de BD MySQL.

16
Interface MySQL Conexo

Para estabelecer conexo devemos utilizar as


funes mysql_connect e mysql_select_db.
A funo mysql_connect ir permitir a conexo
com o SGBD MySQL. Retorna um identificador da
conexo MySQL em caso de sucesso, ou FALSE
em caso de falha.
J a funo mysql_select_db ir permitir
selecionar o BD a ser utilizado. Retorna TRUE em
caso de sucesso, ou FALSE em caso de falha.
necessrio o uso do identificador da conexo
MySQL retornado pela funo mysql_connect.
17
Interface MySQL Conexo

Sintaxe:
mysql_connect(servidor, usuario,
senha);
mysql_select_db(nm_banco, varIdC);

Sendo varIdC a varivel que ir conter o
retorno da funo mysql_connect, ou seja,
o identificador de conexo MySQL.

18
Interface MySQL Execuo de Query's
SQL
A funo mysql_query permite executar consultas
SQL. Se for INSERT, UPDATE ou DELETE, o valor
de retorno ser TRUE em caso de sucesso ou
FALSE em caso de erro. Caso seja um SELECT, o
valor de retorno ser um recurso de resultado
em caso de sucesso ou FALSE em caso de falha.
Sintaxe:
$result = mysql_query(ComandoSQL);

Considerando que $result contm um
recurso (resource) de resultado.

19
Interface MySQL Recuperao de
Dados para a Exibio
Podemos utilizar a funo mysql_num_rows para
retornar o nmero de linhas retornadas por um
comando SELECT executado pela funo
mysql_query.
Sintaxe:
mysql_num_rows($result);

Considerando que $result contm um
recurso (resource) de resultado.
Podemos utilizar a funo mysql_fetch_assoc
para obter uma linha de um recurso de resultado
como um array associativo.
20
Interface MySQL Recuperao de
Dados para a Exibio
Sintaxe:
$linha = mysql_fetch_assoc($result);

Considerando que $result contm um
recurso (resource) de resultado.
Podemos utilizar a funo mysql_fetch_array
para obter uma linha de um recurso de resultado
como um array associativo, array indexado ou
ambos.
Sintaxe:
$linha = mysql_fetch_array($result);

Considerando que $result contm um21
recurso (resource) de resultado.
Interface MySQL Fechando a
conexo
A funo mysql_close permite fechar a conexo
com o BD, sendo necessrio que o identificador
de conexo MySQL seja passado como
parmetro, mas se no for especificado ser
encerrada a ltima conexo MySQL aberta.
Sintaxe:
mysql_close($variavel);

Sendo $variavel o identificador de conexo
MySQL.

22
Interface MySQL

Exemplo Parte 01:


<?php
function insereExibirDadosExemploMySQL(){
$id_conexao = mysql_connect(MYSQL_SERVER,
MYSQL_USER, MYSQL_PASSWORD);
mysql_select_db(MYSQL_DATABASE,
$id_conexao);
for($i = 0; $i < 5; $i++){
$querySQL = "INSERT INTO TB_EXEMPLO
VALUES (" . rand(0, 50) . ", '" .
sha1(str_shuffle("Curso de PHP -
MySQLi")) . "');";
mysql_query($querySQL);
}
23
Interface MySQL

Exemplo Parte 02:


$querySQL = "SELECT * FROM TB_EXEMPLO;";
$resultado = mysql_query($querySQL);
for($i = 0; $i < mysql_num_rows($resultado);
$i++){
$linhaSELECT =
mysql_fetch_assoc($resultado);
echo $linhaSELECT["CODIGO"] . " - " .
$linhaSELECT["TEXTO"] . "<br>";
}
mysql_close($id_conexao);
}

insereExibirDadosExemploMySQL();
24
?>
Referncias

Documentao do PHP. Disponvel em


<www.php.net>.
MACINTYRE. Peter B. O Melhor do PHP. Rio de
Janeiro: Alta Books Editora, 2010. 148 p.
SANTOS, Leandro C. dos. PHP e MySQL. 102 p.
Disponvel em
<www.colegiobrasileiro.com.br/Apostila.pdf>.
JUNIOR, Fred C. PROGRAMANDO PARA WEB
COM PHP/MySQL. 2 Edio. 2001. 65 p.
Disponvel em
<www.ebah.com.br/content/ABAAABDScAC/prog
ramando-php-web>. 25

S-ar putea să vă placă și