capitulo 10 funções internas php para banco de

Propaganda
Linguagem Técnica Orientada – Método (PHP)__________________________________Capítulo 9
CAPITULO 10
FUNÇÕES INTERNAS PHP PARA BANCO DE
DADOS
Para desenvolver um sistema que utilizará um banco de dados, precisamos
estabelecer uma conexão entre a linguagem e este banco de dados.
O PHP possui uma série de funções para interagir com vários banco de dados.
Utilizaremos o banco de dados postgresql nas aulas, mas isto não impede que você utilize
algum outro banco de dados, como mysql por exemplo.
Alguns exemplos de funções PHP para banco de dados diversos, nos links abaixo:
Banco de dados
Funções
Mysql
http://www.php.net/manual/pt_BR/book.mysql.php
Postgresql
http://www.php.net/manual/pt_BR/book.pgsql.php
http://php.joaquinfernandez.net/pt/pgsql/ref.html
Firebird / Interbase http://php.net/manual/pt_BR/ref.ibase.php
Não veremos todas as funções existentes, somente as básicas e fundamentais.
Exemplos de Algumas Funções internas PHP X Postgresql
pg_connect
Abre uma conexão PostgreSQL
pg_query
Executa uma consulta (query). Executar este comando para executar
comandos de banco dados (insert, update, delete, select)
Funções definidas pelo usuário
1
Linguagem Técnica Orientada – Método (PHP)__________________________________Capítulo 9
pg_fetch_all
Retorna todas as linhas (registros) lidas de uma tabela de banco de dados
como uma variável do tipo array. Executar esta função sempre após
executar a função pg_query.
pg_affected_rows()
retorna o número de linhas (instâncias/registros/linhas) afetados por
consultas (queries) INSERT, UPDATE e DELETE executados por
pg_query(). Se nenhuma linha foi afetada, ela retornará 0.
EXEMPLOS DE UTILIZAÇÃO DAS FUNÇÕES
FUNÇÃO PG_CONNECT
A função pg_connect() abre uma conexão com um servidor de banco de dados
PostgreSQL. Retorna FALSE se a conexão não pôde ser estabelecida e TRUE caso a
conexão tenha sido realizada com sucesso. Para que a função funcione, são necessários os
seguintes parâmetros:
Host = testa o nome da máquina com a qual será feita a conexão. No nosso caso é localhost,
por estamos trabalhando localmente. Se fosse em rede, seria o código IP do servidor.
Port = testa o número da porta associada com a conexão. No caso do postgresql a porta é
5432
bdname = nome do banco de dados a ser conectado
user = nome do usuário, no nosso caso é postgres
password = senha (a mesma escolhida durante a instalação do postgresql)
Sintaxe do pg_connect():
pg_connect("host=localhost port=5432 dbname=banco de dados user=usuario
password='senha' ");
Maiores esclarecimentos : http://www.php.net/manual/pt_BR/function.pg-connect.php
Alguns parâmetros não são obrigatórios, como host e port. Devem ser preenchidos,
quando a aplicação está em um servidor e o banco de dados em outro.
FUNÇÃO PG_QUERY
A função pg_query() executa uma query (insert, update, delete, select) Retorna FALSE
em caso de falha ou se a conexão for válida. Caso a query esteja correta e se a conexão com
o banco de dados for válida, a função será executada e retornará TRUE.
Funções definidas pelo usuário
2
Linguagem Técnica Orientada – Método (PHP)__________________________________Capítulo 9
EXEMPLO: Vamos incluir e alterar um registro em uma
tabela do banco de dados.
Passo 1:
Abrir o pgadminIII e criar o banco de dados chamado sistema
No banco de dados sistema vamos criar uma tabela pessoa com os campos :
matricula integer PRIMARY KEY
nome varchar(40) NOT NULL
CREATE DATABASE sistema
CREATE TABLE pessoa (
matricula integer PRIMARY KEY,
nome varchar(40) NOT NULL
)
Obs: Nos exemplos que se seguem, vamos trabalhar com dados ESTÁTICOS, com o intuito
de conhecer as funções. Para as próximas aulas trabalharmos com telas HTML.
Passo 2:
Abrir um editor e escrever o script abaixo: incluir.php
<?php
pg_connect("host=localhost port=5432 dbname=sistema user=usuario password='aulatads' ");
// Abaixo atribuindo valores as variáveis, futuramente os dados virão do formulário HTML
$matricula = 1;
$nome = 'ROSANE';
$sql = "INSERT INTO pessoa (matricula, nome) VALUES ($matricula, '$nome')";
$res = pg_query($sql);
// pg_query → executando a query insert
?>
A primeira coisa a fazer é sempre estabelecer a conexão com o banco de dados.
Logo abaixo, a variável $sql recebe um comando INSERT, igualzinho se fizessemos
no pgadminIII. Em breve veremos como fazer utilizando formulário.
Por último, a variável $sql será parâmetro da função pg_query() que irá executar o
comando INSERT.
A função pg_query pode ser utilizada pelo INSERT, UPDATE, DELETE, SELECT.
Funções definidas pelo usuário
3
Linguagem Técnica Orientada – Método (PHP)__________________________________Capítulo 9
Vamos fazer o mesmo com o comando UPDATE
Passo 3:
Abrir um editor e escrever o script abaixo: alterar.php
<?php
pg_connect("host=localhost port=5432 dbname=sistema user=usuario password='aulatads' ");
// Abaixo atribuindo valores as variáveis, futuramente os dados virão do formulário HTML
$matricula = 1;
$nome = 'ROBERTO';
$sql = "UPDATE pessoa SET nome='$nome' WHERE matricula = $matricula”;
// pg_query → executando a query insert
$res = pg_query($sql);
?>
No caso acima, o comando UPDATE está sendo utilizado para alterar o conteúdo do
campo nome, tendo como condição a matricula ser igual a 1.
FUNÇÃO PG_FETCH_ALL
retorna valores gravados em campos de uma tabela a partir de um resultado gerado
por pg_query(). O retorno é em formato de uma variável do tipo array (matriz).
Agora vamos fazer um script para selecionar e exibir os dados incluidos, utilizando a
estrutura de repetição for() :
lista.php
<?php
pg_connect("host=localhost port=5432 dbname=sistema user=usuario password='aulatads' ");
$sql = "SELECT matricula, nome FROM pessoa ORDER BY nome";
$res = pg_query($sql);
$lista = pg_fetch_all($res);
// transformando os dados selecionados em uma array
Funções definidas pelo usuário
4
Linguagem Técnica Orientada – Método (PHP)__________________________________Capítulo 9
for ($indice=0; $indice < sizeof($lista); $indice++) {
echo $lista[$indice]['matricula'];
echo “ ”;
echo $lista[$indice]['nome'];
echo “<br>”;
}
?>
PRÓXIMA AULA: CADASTRO PHP COM BANCO DE DADOS
Funções definidas pelo usuário
5
Download