conectando-se ao conectando se ao mysql via php

Propaganda
BANCO DE DADOS WEB
1
CONECTANDO SE AO
CONECTANDO-SE
MYSQL VIA PHP
Professor Luciano Roberto Rocha
Como conectar MySQL via PHP
2
…
O MySQL é mais popular SGBD entre os
desenvolvedores PHP. Existem várias funções
ç
do PHP bem documentadas que podem ser
utilizadas em conjunto
j
com o MySQL.
y
…
O procedimento para fazer uma conexão
simples
p
e selecionar alguns
g
dados segue
g
um
princípio de 5 passos.
O princípio dos 5 passos
3
1. Estabelecer a conexão com o SGBD e
selecionar a base de dados;
2. Executar a instrução SQL;
3. Recuperar os resultados do conjunto de
t l
tuplas;
4 Processar os dados e exibir os valores
4.
obtidos;
5. Fechar a conexão;
1º PASSO – Conectar
1
Conectar-se
se ao SGBD
4
…
mysql_connect() e mysql_select_db()
†
†
abre uma conexão com um servidor de banco de dados
MySQL especificado por connection_string .
†
Retorna
R
t
um identificador
id tifi d de
d conexão
ã MySQL
M SQL em caso de
d
sucesso, ou FALSE em caso de falha.
A função mysql_select_db() Seleciona um banco de
dados MySQL.
†
Retorna TRUE em caso de sucesso ou FALSE em falhas.
1º PASSO – Conectar
1
Conectar-se
se ao SGBD
5
Descrição:
mysql
y q _connect ((string
g $server,
$
, string
g $username,
$
, string
g $password)
$p
)
…
O parâmetros
Os
â t
para mysql_connect
l
t incluem:
i l
…
server: O servidor MySQL. Também pode incluir um
número de porta, exemplo "servidor:porta" .
…
username: O nome de
d usuário.
á i O valor
l padrão
d ã é o nome
do usuário que é o proprietário do processo do servidor.;
…
password: A senha. O valor padrão é uma senha vazia.
1º PASSO – Conectar
1
Conectar-se
se ao SGBD
6
Descrição:
mysql_select_db (string $database_name [, resource $ link_identifier ] )
…
Os parâmetros para mysql_select_db incluem:
…
database: O nome da base de dados do MySQL.
…
resource: A chave
h
d conexão
da
ã retornada
t
d pela
l função
f
ã
mysql_connect().
1º PASSO – Conectar
1
Conectar-se
se ao SGBD
7
Exemplos:
$bdcon1 = mysql_connect(
mysql connect(“localhost”
localhost , “root”
root , “ ”);
);
<?php
p p
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Não
die(
Não conectado : ' . mysql_error());
mysql error());
}
$db_selected
$db
selected = mysql_select_db(
mysql select db('foo'
foo , $link);
if (!$db_selected) {
die (Não posso usar esse banco! : ' . mysql_error());
}
?>
2º PASSO – Executar a instrução SQL
2
8
…
mysql_query()
†
Envia uma declaração SQL para o banco de dados MySQL
especificado pelo recurso de conexão;
†
Retorna um recurso (resource) de resultado da consulta
(query) se a consulta pôde ser executada.
†
Retorna FALSE em caso de falha ou se a conexão não é
uma conexão válida.
válida
2º PASSO – Executar a instrução SQL
2
9
Descrição:
mysql_query
y q _q y ( string
g $query
$q y [, resource $
$link_identifier
_
])
…
Os p
parâmetros p
para mysql_query
y q _q y são:
…
query: A consulta SQL. A consulta não deve terminar
com um ponto e vírgula.
vírgula
…
link_identifier:
_
A chave da conexão retornada p
pela
função mysql_connect().
2º PASSO – Executar a instrução SQL
2
10
Exemplos:
//com a declaração do parâmetro connection
$result=mysql_query("SELECT COUNT(*) AS rows FROM x WHERE a=b“, $conn);
//omitindo o parâmetro connection. O PHP usará a última conexão válida
…
$resultado = mysql_query("SELECT * FROM agenda");
3º PASSO – Recuperar os resultados
3
11
…
mysql_fetch_array()
†
Retorna um matriz que corresponde à linha (registro) obtida
e move o ponteiro interno dos dados adiante.
†
Além de armazenar os dados em índices numéricos (índice)
no array resultante, também armazena os dados em chaves
associativas (nome do campo) por padrão.
†
Retorna FALSE se não existem mais linhas.
linhas
3º PASSO – Recuperar os resultados
3
12
Descrição:
mysql
y q _fetch_array
y ( resource $
$result [, int $
$result_type
yp ] )
…
Os p
parâmetros são:
…
result: O resultado que está sendo avaliado. Este
resultado vem de uma chamada a mysql_query().
mysql query()
…
result_type:
_ yp O tipo
p de arrayy q
que deve ser obtida. é uma
constante e pode ter os seguintes valores:
MYSQL_ASSOC, MYSQL_NUM, e o valor padrão de
MYSQL BOTH
MYSQL_BOTH.
3º PASSO – Recuperar os resultados
3
13
Exemplos:
// t
//retornando
d um array com índice
í di de
d campo como chave
h
$arr = mysql_fetch_array($result, MYSQL_NUM);
echo $arr[0];
//retornando um array associativo que tem o nome de campo como chave
$arr = mysql_fetch_array($result, MYSQL_ASSOC);
echo $arr[“autor”];
//retornando um array sem indicar opção: retorna o valor padrão MYSQL_BOTH
$linha = mysql_fetch_array($resultado);
echo $linha[0];
echo $linha[“id”];
$
[ ];
4º PASSO – Processar e exibir os valores
4
14
…
mysql_num_rows() e mysql_num_fields()
†
Retorna respectivamente o número de linhas e o número de
campos corresponde à consulta (SQL).
†
A utilização dessas funções são opcionais, servindo apenas
como suporte para o controle do laço de repetição durante
a exibição dos valores.
†
Retorna false em caso de erro.
erro
4º PASSO – Processar e exibir os valores
4
15
E
Exemplos:
l
//utilizando mysql_num_fields para estabelecer o final de um looping
$fim = mysql_num_fields($resultado);
mysql num fields($resultado);
while ($linha = mysql_fetch_array($resultado)) {
for ($i=0; $i <= $fim; $i++) {
echo
h $linha[$i];
$li h [$i]
}
}
//utilizando pg_num_rows para verificar o total de registros retornado em um consulta
$cont = 0;
while ($cont < mysql_num_rows($resultado)) {
$linha = mysql_fetch_array($resultado, $cont, PGSQL_ASSOC);
echo $linha["nome"];
$cont++;
}
4º PASSO – Processar e exibir os valores
4
16
…
mysql_affected_rows()
†
†
retorna o número de linhas (instâncias/registros/linhas)
/
/
afetados por consultas (queries) INSERT, UPDATE e DELETE
executados por pg_query().
pg query()
Se nenhuma linha foi afetada, ela retornará -1.
Exemplo:
<?php
$result = mysql_query($conn, "INSERT INTO authors VALUES ('Orwell', 2002, ’Farm')");
$nro = mysql_affected_rows($result);
echo
h $nro
$
. “tuplas
“t l fforam afetadas.\n";
f t d \ "
?>
5º PASSO – Encerrando a conexão
5
17
…
mysql_free_result() e mysql_close()
†
mysql_free_result() libera a memória usada pelo
resultado; Precisa ser usada apenas se você está
preocupado em usar muita memória enquanto seu script
está rodando.
†
mysql_close() fecha a conexão com servidor de banco de
dados MySQL associado ao recurso (resource) connection
d d
dado.
†
Retorna TRUE em caso de sucesso ou FALSE em falhas.
NOTA: Normalmente, o uso de mysql_close() não é necessário já que conexões não persistentes abertas são
automaticamente fechadas ao final do processamento do script.
5º PASSO – Encerrando a conexão
5
18
E
Exemplos:
l
//Encerrando uma conexão
…
<?php
$dbconn = mysql_connect(“localhost”, “root”, “ger@l”)
or die("Não foi possível conectar");
print("Conexão bem sucedida");
mysql close($dbconn);
mysql_close($dbconn);
?>
Exemplo – Conexão e consulta simples
19
<?php
## 1º passo: CONECTAR AO BANCO
$conexao = mysql_connect(
mysql connect( “localhost”
localhost , “root”
root , “ger@l”
ger@l ) or die ( "Nao
Nao consegui
conectar ao MySQL" );
mysql_select_db(“cadastro”) or die(“não consegui encontrar o Banco de Dados”);
## 2
2º passo: EXECUTAR CONSULTA SQL
$nome = $_GET["nome"];
$resultado = mysql_query( "SELECT * FROM agenda WHERE nome = '$nome'" );
## 3º passo: RECUPERAR RESULTADOS DO CONJUNTO DE TUPLAS
$linha = mysql_fetch_array($resultado, MYSQL_ASSOC);
## 4º passo: PROCESSAR E EXIBIR OS VALORES OBTIDOS
echo $linha[id] . " " . $linha[nome];
## 5º passo: ENCERRAR A CONEXÃO COM O SGBD
mysql_close($conexao);
?>
Download