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);
?>