MySQL
Para usar o MySQL com o PHP é necessário ter o servidor MySQL instalado e o pacote php5-mysql, onde no Debian ou Ubuntu podemos instalar esses pacotes com o comando apt-get.
# apt-get install mysql-server # apt-get install php5-mysql
Todas as funções mysql que veremos exibem mensagens de erro, caso ocorra erros e deseje personalizar suas próprias mensagens de erro, use o arroba @ antes da função mysql, por exemplo “@mysql_connect”.
Para utilizar as funções mysql abaixo usaremos o banco de dados “teste“, o usuário “aluno1“ e a tabela “produtos“ com os campos (CodigoProduto, Produto e Preco) criados anteriormente na aula de instalação e configuração do servidor LAMP (Linux, Apache, Mysql, Php e PhpMyAdmin).
Produtos
mysql_connect
Sintaxe:
int mysql_connect(string [Host [:porta] [:caminho_socket]], string [Usuário], string [Senha])
Faz uma conexão com o servidor MySQL, retornando TRUE se for executado com sucesso, caso contrário retorna FALSE. No campo “Host” pode ser usado um endereço IP (192.168.1.10) ou um nome de host (mysql.dominio.com.br), normalmente é usado o endereço local “localhost” ou “127.0.0.1”. É possível também especificar uma porta ( “ l o c a l h o s t : 3 3 0 6 ” ) o u u m c a m i n h o p a r a o s o c k e t d o M y S Q L (“localhost:/var/run/mysqld/mysqld.sock”).
Exemplo:
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host"); # fecha a conexão com o banco
mysql_close($conexao);
?>
Sintaxe:
int mysql_pconnect(string [Host [:porta] [:caminho_socket]], string [Usuário], string [Senha])
É i d ê n t i c a a f u n ç ã o m y s q l _ c o n n e c t , c o m a d i f e r e n ç a q u e o l i n k identificador de conexão fica de forma persistente, depois que o script Php encerra a conexão não será fechada. Isso torna o início de uma conexão mais rápido se o mesmo script Php for aberto novamente ou por outro script.
Exemplo:
<?php
# conecta ao servidor localhost
$conexao=@mysql_pconnect("localhost","aluno1","senha") or die ("Erro ao conectar o host"); # fecha a conexão com o banco
mysql_close($conexao);
?>
mysql_close
Sintaxe:
Fecha uma conexão com o servidor MySQL especificado um identificador de conexão usando a função mysql_connect, está função é obrigatória em todos scripts de conexão com o banco de dados.
Exemplo:
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host"); # fecha a conexão com o banco
mysql_close($conexao);
?>
mysql_error
Sintaxe:
string mysql_error(int Identificador)
Exibe a mensagem de erro da última função MySQL
Exemplo:
<?php
# conecta ao servidor localhost
?>
Saída do script após a execução
Erro: Access denied for user 'qualquerusuario'@'localhost' (using password: YES)
mysql_error
Sintaxe:
string mysql_error(int Identificador)
Exibe os números dos erros internos do servidor MySQL
Exemplo:
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","qualquerusuario","senha") or die ("Númer do erro: ".mysql_errno());
?>
Número do erro: 1045
mysql_db_query
Sintaxe:
int mysql_db_query(string Banco, string consultaSQL, int Identificador)
Seleciona um banco de dados no servidor MySQL e executa uma consulta SQL usando um identificador, retorna TRUE se for executado com sucesso e FALSE se ocorrer erro.
Exemplo:
O exemplo abaixo seleciona o banco de dados “teste” com a função “mysql_db_query” e executa a consulta SQL “SELECT” na tabela “produtos”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host"); # seleciona o banco teste, e executa a consulta SELECT
$resultado = mysql_db_query("teste","SELECT * FROM produtos",$conexao); if(!$resultado)
echo "Não foi possível fazer a consulta no banco";
else
echo "A consulta foi executada com sucesso !!!";
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
A consulta foi executada com sucesso !!!
mysql_select_db
Sintaxe:
int mysql_select_db(string Banco, int Identificador)
Seleciona um banco de dados especificado no servidor MySQL usando um identificador opcionalmente, retorna TRUE se for executado com sucesso e FALSE se ocorrer erro.
O exemplo abaixo seleciona o banco de dados “teste” usando a função “mysql_select_db” usando o link identificador “conexao” com a função “mysql_connect”
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco teste, e executa a consulta SELECT
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # fecha a conexão
mysql_close($conexao);
?>
mysql_query
Sintaxe:
int mysql_query(string consultaSQL, int Identificador)
Executa uma string SQL no banco de dados MySQL especificado por um identificador opcionalmente e exibe o resultado da consulta ao banco, retorna FALSE se ocorrer erro.
O exemplo abaixo executa a string SQL “SELECT” usando a função “mysql_query”
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco teste, e executa a consulta SELECT
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela de produtos
$stringSQL = "SELECT * FROM produtos"; # executa a consulta SQL $consulta = mysql_query($stringSQL,$conexao); # fecha a conexão mysql_close($conexao); ?> mysql_affected_rows Sintaxe:
int mysql_affected_rows(int Identificador)
Retorna o total de linhas afetadas por uma consulta SQL INSERT, UPDATE ou DELETE, com exceção na consulta DELETE sem especificar a cláusula WHERE que retorna 0.
O exemplo abaixo conecta ao servidor localhost usando o usuário “aluno1” ao banco de dados “teste”, insere um linha de registro na t a b e l a “ p r o d u t o s ” , e x e c u t a a c o n s u l t a S Q L c o m o c o m a n d o “mysql_query” e exibe o resultador com “mysql_affected_rows”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host"); # seleciona o banco teste
mysql_select_db("teste",$conexao) or die ("Erro ao conectar a banco de dados"); # insere um registro na tabela produtos
$Consulta = "INSERT INTO produtos(produto,preco)VALUES('CD','4.99')"; # executa a consulta SQL
$Resultado = mysql_query($Consulta,$conexao); # exibe o resultado da consulta
echo "Foram afetadas: <b>" . mysql_affected_rows($conexao) . "</b> linha(s)"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
Foram afetadas: 1 linha(s)
mysql_num_rows
int mysql_num_rows(int Resultado)
Retorna o número total de linhas de uma consulta SQL.
Exemplo:
O exemplo abaixo retorna o número total de linhas com a função “ m y s q l _ n u m _ r o w s ” d a s t r i n g S Q L “ S E L E C T ” u s a n d o a f u n ç ã o “mysql_query”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # exibe o número total de registros
echo "O número total de registros é: <b>" . mysql_num_rows($resultado)."</b><br>\n"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
mysql_num_fields
Sintaxe:
int mysql_num_fields(int Resultado)
Retorna o número total de campos de uma tabela.
Exemplo:
O exemplo abaixo retorna o número total de campos com a função “mysql_num_fields” da string SQL “SELECT” usando a função “mysql_query”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # exibe o número total de registros
echo "O número de campos é:<b>".mysql_num_fields($resultado)."</b><br>\n"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O número total de campos é: 3
mysql_list_dbs
Sintaxe:
int mysql_list_dbs(int Identificador)
Retorna todas as tabelas do banco de dados usando uma conexão com um identificador. Para retornar o nome das tabelas, use a função “mysql_tablename”.
Exemplo:
O exemplo abaixo retorna os bancos de dados usando a função “ m y s q l _ l i s t _ d b s ” , o n ú m e r o t o t a l d e b a n c o s c o m a f u n ç ã o
“mysql_num_rows” e exibe os nomes dos bancos usando o loop “for” junto com a função “mysql_tablename” começando a partir de “0” (banco1 – 0, banco2 – 1, ...).
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","root","senha_root") or die ("Erro ao conectar o host ".mysql_error()); # seleciona as tabelas do banco teste
$bancos = mysql_list_dbs($conexao) or die ("Erro ao acessar o banco ".mysql_error()); # exibe todos os bancos
for($x=0; $x < mysql_num_rows($bancos); $x++) {
echo "Banco $x: " . mysql_tablename($bancos, $x)."<br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
Banco 0: information_schema Banco 1: mysql Banco 2: teste ... mysql_list_tables Sintaxe:
int mysql_list_tables(string Banco, int Identificador)
Retorna todas as tabelas do banco de dados usando uma conexão com um identificador. Para retornar o nome das tabelas, use a função “mysql_tablename”.
Exemplo:
O exemplo abaixo é idêntico ao exemplo anterior com a função “mysql_list_dbs”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","root","senha_root") or die ("Erro ao conectar o host ".mysql_error()); # seleciona as tabelas do banco teste
$tabelas = mysql_list_tables("mysql",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # exibe todas as tabelas do banco
for($x=0; $x < mysql_num_rows($tabelas); $x++) {
echo "Tabela $x: " . mysql_tablename($tabelas, $x)."<br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Tabela 0: columns_priv Tabela 1: db Tabela 2: func ... mysql_tablename Sintaxe:
string mysql_tablename(int Resultado, int Indice)
Exibe o nome de uma tabela em um banco de dados. Para retornar o total do número de tabelas, use a função “mysql_num_rows”.
Exemplo:
O exemplo abaixo é idêntico ao exemplo anterior com a função “mysql_list_tables”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","root","senha_root") or die ("Erro ao conectar o host ".mysql_error()); # seleciona as tabelas do banco teste
# exibe todas as tabelas do banco
for($x=0; $x < mysql_num_rows($tabelas); $x++) {
echo "Tabela $x: " . mysql_tablename($tabelas, $x)."<br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
Tabela 0: columns_priv Tabela 1: db Tabela 2: func ... mysql_fetch_array Sintaxe:
array mysql_fecth_array(int Resultado, int TipoResultado)
Exibe um array de linhas de registros de uma tabela no banco de dados. Esta função retorna uma lista indexada com os nomes dos campos da tabela como índices, é possível também usar valores numéricos para os
campos começando de um “1” (campo[1], campo[2], ...).
O tipo de resultado não é obrigatório, podendo ser: MYQL_ASSOC (índices associativos com os nomes dos campos) , MYSQL_NUM (índices numéricos campo[1], campo[2], ...) ou MYQL_BOTH (ambos).
Exemplo1:
O exemplo abaixo exibe as linhas com os registros da tabela “produtos” em um array com o loop “for” , onde é usado o nome do campo.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # armazena os campos da tabela
$campos = mysql_fetch_array($resultado);
# exibe as linhas com os registros da tabela produtos for($x=0; $x <= mysql_num_rows($resultado); $x++) {
echo "Produto: ".$campos["produto"]." Preço: ".$campos["preco"]."<br>\n"; }
# fecha a conexão
mysql_close($conexao);
Exemplo2:
Este exemplo usa o loop “while” e exibe os campos usando valores numéricos
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao);
# armazena os campos da tabela e os exibe usando indices numéricos campo[1],campo[2], ... while($campos = mysql_fetch_array($resultado,MYSQL_NUM))
{
echo "Produto: ".$campos[1]." Preço: ".$campos[2]."<br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
Produto: CD Preço: 4.99
Sintaxe:
array mysql_fecth_row(int Resultado)
É idêntica a função “mysql_fetch_array”, com a diferença que exibe um array de linhas de registros de uma tabela no banco de dados, retornando uma lista indexada com os nomes dos campos da tabela como índices, usando valores numéricos para os campos começando de zero “0” (campo[0], campo[1], ...).
Exemplo:
O exemplo abaixo exibe as linhas com os registros da tabela “produtos” em um array com o loop “while” , onde é usado o nome do campo. Assim como a função “mysql_fetch_array” é possível usar o loop “for”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao);
# armazena os campos da tabela e os exibe usando indices numéricos campo[0],campo[1], ... while($campos = mysql_fetch_row($resultado))
{
echo "CódigoProduto:<b>".$campos[0]."</b> Produto:<b>".$campos[1]."</b> Preço:<b>".$campos[2]."</b><br>\n"; }
# fecha a conexão
?>
Saída do script após a execução
CódigoProduto:1 Produto:CD Preço:4.99
mysql_fetch_object
Sintaxe:
object mysql_fecth_object(int Resultado)
Retorna um objeto com atributos referente a linha de registro da tabela. Para especificar os tipos dos campos é necessário utilizar o caractere “->”.
Exemplo:
Este exemplo retorna os valores do campos “código do produto”, “produto” e “preco” da tabela “produtos”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao);
# armazena os campos da tabela e os exibe usando indices numéricos campo[0],campo[1], ... while($campos = mysql_fetch_row($resultado))
{
echo "CódigoProduto:<b>".$campos[0]."</b> Produto:<b>".$campos[1]."</b> Preço:<b>".$campos[2]."</b><br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
Produto:CD Preço:4.99
mysql_fetch_field
Sintaxe:
Retorna as propriedades de uma coluna de uma tabela na forma de um objeto que pode ser:
name – retorna o nome da coluna;
•
table – rertorna a tabela a qual pertence a coluna;
•
max_length – retorna o tamanho máximo da coluna;
•
not_null – retorna 1 se a coluna não for nula;
•
primary_key - retorna 1 se a coluna for uma chave primária;
•
unique_key - retorna 1 se a coluna for uma chave única;
•
multiply_key - retorna 1 se a coluna não for uma chave única;
•
blob – retorna 1 se a coluna um campo BLOB usado para imagens;
•
type - retorna o tipo da coluna;
•
unsigned - retorna 1 se a coluna não tiver sinal;
•
zerofill - retorna 1 se a coluna for preenchida com zeros.
•
Exemplo:
Para especificar os tipos dos campos é necessário utilizar o caractere “->”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # armazena o nome da tabela
echo "O nome da tabela é: <b>".$tabela->table."</b><br>\n"; # armazena os nomes dos campos da tabela
while($campos = mysql_fetch_field($resultado)) {
echo "Nome campo:<b>".$campos->name."</b> Tipo:<b>".$campos->type."</b><br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O nome da tabela é: produtos Nome campo:produto Tipo:string Nome campo:preco Tipo:real
mysql_fetch_lengths
Sintaxe:
array mysql_fecth_lengths(int Resultado)
Exibe um array com o tamanho de cada campo , retorna FALSE se ocorrer erro e o primeiro campo começa a partir de 0 (campo[0]) usando as funções “mysql_fetch_array” ou “mysql_fetch_row”.
Exemplo:
O exemplo abaixo retorna o comprimento dos campos com a quantidade de caracteres.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # armanzena um array com os nomes do campos $campos = mysql_fetch_row($resultado);
# armazena o número de campos
$NumeroCampos = mysql_num_fields($resultado); # armazena o comprimento dos campos
$ComprimentoCampos = mysql_fetch_lengths($resultado); # exibe o número total de registros
for($x=0; $x < $NumeroCampos; $x++) {
echo "O comprimeto do $x campo é:<b>".$ComprimentoCampos[$x]."</b> caractere(s), e seu valor é:<b>".$campos[$x]."</b><br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O comprimeto do 0 campo é:1 caractere(s), e seu valor é:1 O comprimeto do 1 campo é:2 caractere(s), e seu valor é:CD
O comprimeto do 2 campo é:4 caractere(s), e seu valor é:4.99
mysql_field_name
Sintaxe:
string mysql_field_name(int Resultado, int IndiceCampo)
Retorna o nome do campo começando de zero “0” (campo[0]).
Exemplo:
Exibe o nome de todos os campos da tabela “produtos”
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # armazena o número de campos
$NumeroCampos = mysql_num_fields($resultado); # exibe os nomes dos campos
for($x=0; $x < $NumeroCampos; $x++) {
echo "O nome do $x campo é: <b>".mysql_field_name($resultado,$x)."</b><br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O nome do 0 campo é: codigo_produto O nome do 1 campo é: produto
O nome do 2 campo é: preco
mysql_field_seek
Sintaxe:
int mysql_field_seek(mysql_field_name (int Resultado, int IndiceCampo))
Esta função Avança movendo o cursor de ponteiro de campo para o campo especificado começando de zero “0”. (campo[0], campo[1]).
Exemplo:
O exemplo abaixo avança o cursor para o campo 2 que está na coluna 2 como mostra o exemplo abaixo:
Campo 1 Campo
2 Campo 3
CodigoProduto Produto Preco
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # move o cursor de ponteiro para o campo 2
mysql_field_seek($resultado,2) or die ("Não foi possivel ir até a campo 2"); # armazena os campos
$campo = mysql_fetch_field($resultado); # exibe o nome o campo
echo "O cursor de ponteiro foi movido para o campo:<b>" . $campo->name."</b><br>\n"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
mysql_field_type
Sintaxe:
string mysql_field_type(int Resultado, int IndiceCampo)
Retorna o tipo de campo de uma tabela começando com zero “0” (campo[0], campo[1]).
Exemplo:
O exemplo abaixo retorna o tipo de cada campo da tabela, onde é utilizado um loop com “for” para exibir os tipos dos campos.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # armazena o número de campos
$NumeroCampos = mysql_num_fields($resultado); # exibe o tipo dos campos
for($x=0; $x < $NumeroCampos; $x++) {
echo "O tipo do $x campo é:<b>" . mysql_field_type($resultado,$x)."</b><br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O tipo do 0 campo é:int O tipo do 1 campo é:string O tipo do 2 campo é:real
mysql_field_table
Sintaxe:
string mysql_field_seek(int Resultado, int IndiceCampo)
R e t o r n a o n o m e d a t a b e l a d e u m c a m p o e s p e c i f i c o , e m u m relacionamento de tabelas retorna o nome de diferentes tabelas de cada campo.
Exemplo:
O exemplo abaixo retorna o nome da tabela do primeiro (0) e segundo campo (1). É possível utilizar também um loop com “for” ou “ ” para os campos.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao);
echo "O nome da tabela do primeiro campo é:<b>" . mysql_field_table($resultado,0)."</b><br>\n"; echo "O nome da tabela do segundo campo é:<b>" . mysql_field_table($resultado,1)."</b><br>\n"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O nome da tabela do primeiro campo é:produtos O nome da tabela do segundo campo é:produtos
mysql_field_flags
Sintaxe:
string mysql_field_flags(int Resultado, int IndiceCampo)
Retorna o indicador de tipos do campo de uma tabela separados por espaço começando com zero “0” (campo[0], campo[1]). Os seguintes indicadores de tipos de campo podem ser retornados: auto_increment, primary_key, unique_key, multiple_key, binary, blob, enum, not null, timestamp, unsigned e zerofill.
Exemplo:
O exemplo abaixo retorna os indicadores de tipos de campos dos campos “CodigoProduto”, “Produto” e “Preco”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # armazena o número de campos
$NumeroCampos = mysql_num_fields($resultado); # exibe o tipo dos campos
{
echo "O tipo de indicador do campo $x é:<b>" . mysql_field_flags($resultado,$x)."</b><br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O tipo de flag do campo 0 é:not_null primary_key auto_increment O tipo de flag do campo 1 é:not_null
O tipo de flag do campo 2 é:not_null
mysql_field_len
Sintaxe:
int mysql_field_len(int Resultado, int IndiceCampo)
Retorna o tamanho de um campo de uma tabela começando com zero “0” (campo[0], campo[1]).
O exemplo abaixo retorna o tamanho dos campos.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # armazena o número de campos
$NumeroCampos = mysql_num_fields($resultado); # exibe o tipo dos campos
for($x=0; $x < $NumeroCampos; $x++) {
echo "O tamanho do campo $x é:<b>" . mysql_field_len($resultado,$x)."</b><br>\n"; }
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O tamanho do campo 0 é:11 O tamanho do campo 1 é:35 O tamanho do campo 2 é:12
Sintaxe:
int mysql_list_field(string Banco, string Tabela, int Identificador)
Retorna informações dos campos de uma tabela no banco de dados como: nome, tipo, tamanho, indicadores de tipo. Para retornar as informações sobre os campos, use as funções mostradas anteriormente “mysql_field_name”, “mysql_field_type”, “mysql_field_len”, “mysql_field_flags”.
Exemplo:
O exemplo abaixo retorna o nome, tipo, tamanho e identificador de tipos do campos.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # armazena as informações dos campos
$resultado = mysql_list_fields("teste","produtos",$conexao); # armazena o número de campos
$NumeroCampos = mysql_num_fields($resultado); # exibe o tipo dos campos
for($x=0; $x < $NumeroCampos; $x++) {
echo "O tipo do campo $x é:<b>" . mysql_field_type($resultado,$x)."</b><br>\n"; echo "O tamanho do campo $x é:<b>" . mysql_field_len($resultado,$x)."</b><br>\n";
echo "O identificador de tipo do campo $x é:<b>" . mysql_field_flags($resultado,$x)."</b><br>\n"; echo "<hr>";
}
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O nome do campo 0 é:codigo_produto O tipo do campo 0 é:int
O tamanho do campo 0 é:11
O identificador de tipo do campo 0 é:not_null primary_key auto_increment
O nome do campo 1 é:produto O tipo do campo 1 é:string O tamanho do campo 1 é:35
O identificador de tipo do campo 1 é:not_null O nome do campo 2 é:preco
O tipo do campo 2 é:real O tamanho do campo 2 é:12
O identificador de tipo do campo 2 é:not_null
Sintaxe:
int mysql_free_result(int Resultado)
Esta função libera memória usada na execução de uma string SQL sendo que somente deve ser usada se estiver o script for consumir muita memória. Após a execução de um script toda a memória é liberada de forma automática quando finaliza o script.
Exemplo:
O exemplo abaixo libera a memória usada pela string SQL
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos"; # armazena as informações dos campos
$resultado = mysql_query($consulta,$conexao); while($campos = mysql_fetch_array($resultado)) {
echo "Codigo Produto: <b>" . $campos["codigo_produto"]."</b><br>\n"; echo "Produto: <b>" . $campos["produto"]."</b><br>\n";
echo "Preco: <b>" . $campos["preco"]."</b><br>\n"; }
# libera a memória usada pela string SQL da consulta SELECT mysql_free_result($resultado);
# fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
Codigo Produto: 1 Produto: CD
Preco: 4.99
mysql_insert_id
Sintaxe:
int mysql_free_result(int Identificador)
Retorna o número ID da última string SQL INSERT em um campo auto numerável (AUTO_INCREMET).
O exemplo abaixo insere uma linha de registro na tabela produtos com os dados do produto “DVD” e preço “9.90” e retorna o último registro na t a b e l a n o c a m p o “ c o d i g o _ p r o d u t o ” a u t o n u m e r á v e l c o m AUTO_INCREMENT.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "INSERT INTO produtos(produto,preco)VALUES('DVD',9.90)"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao);
echo "O valor do último registro é: <b>". mysql_insert_id($conexao)."</b><br>\n"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
O valor do último registro é: 2
Inserindo dados (INSERT)
O exemplo abaixo insere uma linha de registro na tabela produtos como o produto “Livro” e preço “35,00”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "INSERT INTO produtos(produto,preco)VALUES('Livro',35.00)"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); echo "Dados enviados com sucesso !!! </b><br>\n"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
Dados enviados com sucesso !!!
Atualizando dados (UPDATE)
Exemplo:
O exemplo abaixo atualiza o preço do campo “produto” da tabela “produtos” para “1.99” onde o campo for igual a “CD”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "UPDATE produtos set preco=1.99 WHERE produto='CD'"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao);
echo "Dados atualizados com sucesso !!! </b><br>\n"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
Dados atualizados com sucesso !!!
Selecionando dados (SELECT)
Exemplo:
O exemplo abaixo seleciona o campo “produto” da tabela “produtos” onde o campo for igual a “CD”.
<?php
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "SELECT * FROM produtos WHERE produto='CD'"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); # armazena os campos em uma array
$campos = mysql_fetch_object($resultado); # exibe o valor do campo
echo "CD: <b>".$campos->produto."</b> Preço: <b>".$campos->preco."</b><br>\n"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução
CD: CD Preço: 1.99
Excluindo dados (DELETE)
Exemplo:
O exemplo abaixo exclui o campo “produto” da tabela “produtos” onde o campo for igual a “CD”.
<?php
# conecta ao servidor localhost
$conexao=@mysql_connect("localhost","aluno1","senha") or die ("Erro ao conectar o host ".mysql_error()); # seleciona o banco
mysql_select_db("teste",$conexao) or die ("Erro ao acessar o banco ".mysql_error()); # seleciona a tabela produtos
$consulta = "DELETE FROM produtos WHERE produto='CD'"; # executa a string SQL
$resultado = mysql_query($consulta,$conexao); echo "Dados excluidos com sucesso !!!</b><br>\n"; # fecha a conexão
mysql_close($conexao);
?>
Saída do script após a execução