1 de jul. de 2009

Usar MySQL com PHP

Usar MySQL com PHP

A Base de Dados mais comum para a linguagem php é o mysql, podes fazer o download no site mysql.com. No entanto podes utilizar outras bases de dados como, oracle, Sybase, mSQL, PostgreSQL ou qualquer um com ligação ODBC. Neste tutorial vamos utilizar como padrão o mysql.

Para o php interagir com uma base de dados SQL, independente da base de dados, existem três comandos básicos que devem ser utilizados: um que faz a ligação com o servidor da base de dados, um que seleciona a base de dados a ser utilizada e um que executa uma "query" SQL.

Ligação com o servidor

A ligação com o servidor da base de dados mySQL em PHP é feita através do comando mysql_connect, que tem a seguinte sintaxe:

int mysql_connect(string /* endereço do servidor */ , string /* nome do utlizador */ , string /*password*/ );

Os parâmetros são bastante simples: o endereço do servidor, o nome do utlizador e a password para a ligação. A função retorna um valor inteiro, que é o identificador da ligação estabelecida e deverá ser armazenado numa variável para ser utilizado depois. No nosso exemplo, temos como servidor da base de dados a mesma máquina que corre o servidor http, como login do utlizador "root" e password "teste":

$ligacao = mysql_connect("localhost", "root", "teste");

Assim, se a ligação for bem sucedida (existir um servidor no endereço especificado que possua o utlizador com a password fornecida), o identificador da ligação fica armazenado na variável $ligacao.

Os comandos para outras base de dados são diferentes, mas usam padrões parecidos.



Seleção do base de dados

Uma vez ligadoo, é preciso selecionar abase de dados existente no servidor com o qual desejamos trabalhar. Isso é feito através da função int mysql_select_db, que tem a seguinte sintaxe:

int mysql_select_db(string /*nome da dase de dados*/, int /*ligacao*/ );

O valor de retorno é 0 se o comando falhar, e 1 no caso de sucesso. O nome da base de dados a selecionar é o primeiro parâmetro fornecido, seguido pelo identificador da ligação. Se este for omitido, o interpretador PHP tentará utilizar a última ligação estabelecida. Recomenda-se sempre escrever esse valor, para facilitar a legibilidade do código. No nosso exemplo, a base de dados a ser selecionada possui o nome "ged":

$ok = mysql_select_db("ged", $ligacao);

Após a execução deste comando qualquer consulta executada para aquela ligação utilizará a base de dados selecionada.

A variável $ok se for 0 deve lançar a informação não foi possível estabelecer uma ligação.


Execução de queries SQL

Após estabelecida a ligação e selecionada a base de dados a ser utilizada, quase toda a interação com o servidor mySQL pode ser feita através de consultas escritas em ANSI SQL ( Padrão Structured Query Language), com o comando mysql_query, que utiliza a seguinte sintaxe:

int mysql_query(string consulta, int [ligacao] );

O valor de retorno é 0 se falhar ou 1 no caso de sucesso. Sucesso aqui significa que a consulta está sintaticamente correcta e foi executada no servidor. Nenhuma informação sobre o resultado é retornado deste comando. No caso da consulta ser um comando SELECT, o valor de retorno é um valor interno que identifica o resultado, que poderá ser tratado com a função mysql_result() ou outras. A string query não deve conter ponto-e-vírgula no final do comando, e o identificador da ligação é opcional. Vamos criar uma tabela como exemplo:

$cria = "CREATE TABLE exemplo (codigo INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(40), email VARCHAR(50))";

mysql_query($cria, $ligacao);

Ou

$insere = "INSERT INTO exemplo (nome,email) VALUES ("Fulano","teste@email.com.br");

mysql_query($insere, $insere);

Se o comando retornar uma consulta, seria necessário guardar essa consulta numa variavel como vector. Ou mesmo que não retorne uma consulta, mas se for necessário saber se realmente o comando foi executado, podes usar uma variável para testar.

$consulta = "SELECT nome, email FROM exemplo WHERE nome = 'Teste'";

$resultado = mysql_query($consulta, $ligacao);

printf("Nome: ", mysql_result($resultado,0,"nome"), "
\n");
printf("e-mail: ", mysql_result($resultado,0,"email"),"
");

Abraço a todos e tenham sempre uma boa leitura...

Nenhum comentário:

Postar um comentário