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"),"
");
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"),"
");