Manual do PHP
Anterior |  | Próxima

# mysql_query

(PHP 3, PHP 4 )

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") 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() e mysql_connect().

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