Envia uma consulta MySQL

# mysql_query

(PHP 4, PHP 5)

mysql_query — Envia uma consulta MySQL

Aviso

Esta extensão foi descontinuada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

- mysqli_query()
- PDO::query()

### Descrição

function mysql_query(string `$query`, resource `$link_identifier` = NULL): mixed

mysql_query() envia uma única consulta (consultas múltiplas não são suportadas) ao banco de dados atualmente ativo no servidor associado ao `link_identifier` especificado.

### Parâmetros

`query`
  A consulta SQL. A consulta não deve terminar com um ponto e vírgula. Os dados dentro da consulta devem ser adequadamente escapados.
`link_identifier`
  A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível `E_WARNING` será gerado.

### Valor Retornado

Para comandos SELECT, SHOW, DESCRIBE, EXPLAIN e outras instruções que retornam resultados, mysql_query() retorna um resource em caso de sucesso ou `false` em caso de erro.

Para outros tipos de instruções SQL, UPDATE, DELETE, DROP, etc, mysql_query() retorna `true` em caso de sucesso ou `false` em caso de erro.

O recurso de resultado retornado pode ser passado para mysql_fetch_array() e para outras funções para lidar com tabelas de resultados e para acessar os dados retornados.

Use mysql_num_rows() para obter quantas linhas foram retornadas para uma instrução SELECT ou mysql_affected_rows() para obter quantas linhas foram afetadas por uma instrução DELETE, INSERT, REPLACE ou UPDATE.

mysql_query() também falhará e retornará `false` se o usuário não tiver permissões para acessar a(s) tabela(s) referenciada(s) pela consulta.

### Exemplos

Exemplo #1 Consulta Inválida

A seguinte consulta é sintaticamente inválida, assim mysql_query() falha e retorna `false`.

    <?php
    $result = mysql_query('SELECT * WHERE 1=1');
    if (!$result) {
        die('Consulta inválida: ' . mysql_error());
    }

    ?>

Exemplo #2 Consulta Válida

A seguinte consulta é válida, assim mysql_query() retorna um resource.

    <?php
    // Isto poderia ser fornecido pelo usuário, por exemplo
    $firstname = 'fred';
    $lastname  = 'fox';

    // Formula a Consulta
    // Esta é a melhor forma de realizar uma consulta SQL
    // Para mais exemplo, consulte mysql_real_escape_string()
    $query = sprintf("SELECT firstname, lastname, address, age FROM friends
        WHERE firstname='%s' AND lastname='%s'",
        mysql_real_escape_string($firstname),
        mysql_real_escape_string($lastname));

    // Realiza a Consulta
    $result = mysql_query($query);

    // Verifica o resultado
    // Isto mostra a consulta real enviada ao MySQL, e o erro. Útil para depuração.
    if (!$result) {
        $message  = 'Consulta inválida: ' . mysql_error() . "\n";
        $message .= 'Consulta completa: ' . $query;
        die($message);
    }

    // Usa o resultado
    // Tentar mostrar $result não permitirá acesso à informação no recurso
    // Uma das funções de resultados da extensão mysql precisa ser usada
    // Consulte também mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
    while ($row = mysql_fetch_assoc($result)) {
        echo $row['firstname'];
        echo $row['lastname'];
        echo $row['address'];
        echo $row['age'];
    }

    // Libera os recursos associados com o conjunto de resultados
    // Isto é feito automaticamente no final do script
    mysql_free_result($result);
    ?>

### Veja Também

- mysql_connect() - Abre uma conexão a um servidor MySQL
- mysql_error() - Retorna o texto da mensagem de erro da operação MySQL anterior
- mysql_real_escape_string() - Escapa os caracteres especiais em uma string para uso em uma instrução SQL
- mysql_result() - Retorna dados do resultado
- mysql_fetch_assoc() - Obtém uma linha do resultado como um array associativo
- mysql_unbuffered_query() - Envia uma consulta SQL ao MySQL sem buscar e armazenar em buffer as linhas de resultados

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open