mysql_query

mysql_query -- Realiza uma query MySQL

Descrição

resource mysql_query ( string query [, resource link_identifier [, int result_mode]])

mysql_query( ) envia uma query para o banco de dados ativo no servidor da conexão informada em link_identifier . Se o parâmetro link_identifier não é especificado , a ultima conexão aberta é usada . Se nenhuma conexão esta aberta , a função tenta estabelecer uma conexão como mysql_connect( ) seja chamada sem argumentos e usa-a .

O parâmetro opcional result_mode pode ser MYSQL_USE_RESULT e MYSQL_STORE_RESULT . O seu padrão MYSQL_STORE_RESULT , assim seu resultado é colocado no buffer . Veja também mysql_unbuffered_query( ) para a sua contrapartida .

Nota : A string da query não deve terminar com ponto e virgula( ; ) .

Somente para os comandos SELECT , SHOW , EXPLAIN ou DESCRIBE mysql_query( ) retorna um identificador de recurso ou FALSE se a query não foi executada corretamente . Para outros tipos de comandos SQL , mysql_query( ) retorna TRUE em caso de sucesso e FALSE em erro . Um valor não FALSE indica que a query foi legal e pode ser executada pelo servidor . Não indica nada sobre o número de linhas afetadas ou retornadas . É perfeitamente possível para uma query ser bem sucedida , mas não afetar linhas ou retornar linhas .

A seguinte query é sintaticamente invalida , assim mysql_query( ) falha e retorna FALSE :

Exemplo 1 . mysql_query( )

 
php

 
$result

 
=

 
mysql_query(

 
"SELECT

 
*

 
WHERE

 
1=1"

 
)

 
or

 
die("Query

 
invalida

 
:

 
"

 
.

 
mysql_error())

 
;

 
?





A seguinte query é semanticamente invalida se my_col não é uma coluna da tabela my_tbl , assim mysql_query( ) falha e retorna FALSE :

Exemplo 2 . mysql_query( )

 
?php

 
$result

 
=

 
mysql_query(

 
"SELECT

 
my_col

 
FROM

 
my_tbl"

 
)

 
or

 
die

 
("Query

 
invalida

 
:

 
"

 
.

 
mysql_error())

 
;

 
?





mysql_query( ) irá também falhar e retornar FALSE se você não tiver permissão para acessar a tabela(s ) referida(s ) pela query .

Assumindo que a query seja bem sucedida , você pode chamar mysql_num_rows( ) para achar quantas linhas foram retornadas para um comando SELECT ou mysql_affected_rows( ) para achar quantas linhas foram afetadas por um comando DELETE , INSERT , REPLACE , ou UPDATE .

Somente para os comandos SELECT,SHOW,DESCRIBE ou EXPLAIN , mysql_query( ) retorna um novo identificador de resultado que você pode passar para mysql_fetch_array( ) e outras funções que lidam com resultados de tabelas . Quando você terminou de usar o resultado você pode liberar os recursos usados chamando mysql_free_result( ) . Embora a memória será automaticamente liberada ao final da execução do script .

Veja também : mysql_num_rows( ) , mysql_affected_rows( ) , mysql_unbuffered_query( ) , mysql_free_result( ) , mysql_fetch_array( ) , mysql_fetch_row( ) , mysql_fetch_assoc( ) , mysql_result( ) , mysql_select_db( ) , and mysql_connect( ) .