Manual do PHP
Anterior |  | Próxima

# mysql_query

(PHP 3, PHP 4 , PHP 5)

mysql_query -- Realiza uma query MySQL

## Descrição

resource mysql_query ( string query [, resource link_identifier] )

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 resultado é guardado em buffer.

> 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. Exemplo mysql_query()
`<?php $result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die('Invalid query: ' . 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'); if (!$result) { die('Invalid query: ' . 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() e mysql_connect().

Anterior | Principal | Próxima
mysql_ping | Acima | mysql_real_escape_string