PHP 8.2.2 Released!

mysqli::execute_query

mysqli_execute_query

(PHP 8 >= 8.2.0)

mysqli::execute_query -- mysqli_execute_queryPrepara, vincula parâmetros e executa a instrução SQL

Descrição

Estilo orientado à objeto

public mysqli::execute_query(string $query, ?array $params = null): mysqli_result|bool

Estilo procedural

mysqli_execute_query(mysqli $mysql, string $query, ?array $params = null): mysqli_result|bool

Prepara a consulta SQL, associa parâmetros e a executa. O método mysqli::execute_query() é um atalho para mysqli::prepare(), mysqli_stmt::bind_param(), mysqli_stmt::execute() e mysqli_stmt::get_result().

O modelo de instrução pode conter zero ou mais marcadores de parâmetro de ponto de interrogação (?) também chamados de espaços reservados. Os valores dos parâmetros devem ser fornecidos como um array usando o parâmetro params.

Uma instrução preparada é criada, mas nunca é exposta fora da função. É impossível acessar as propriedades da instrução como faria com o objeto mysqli_stmt. Devido a essa limitação, as informações de status são copiadas para o objeto mysqli e estão disponíveis usando seus métodos, por exemplo mysqli_affected_rows() ou mysqli_error().

Nota:

No caso em que uma instrução é passada para mysqli_execute_query() que é maior que max_allowed_packet do servidor, os códigos de erro retornados são diferentes dependendo do sistema operacional. O comportamento é o seguinte:

  • No Linux retorna um código de erro de 1153. A mensagem de erro significa que o pacote é maior que max_allowed_packet bytes.

  • No Windows retorna um código de erro 2006. Essa mensagem de erro significa que o servidor foi desativado.

Parâmetros

link

Somente no estilo procedural: Um recurso link retornado por mysqli_connect() ou mysqli_init()

query

A consulta, como uma string. Deve consistir em uma única instrução SQL.

A instrução SQL pode conter zero ou mais marcadores de parâmetro representados por caracteres de ponto de interrogação (?) nas posições apropriadas.

Nota:

Os marcadores são válidos apenas em determinados locais nas instruções SQL. Por exemplo, eles são permitidos na lista VALUES() de uma instrução INSERT (para especificar valores de coluna para uma linha) ou em uma comparação com uma coluna em uma cláusula WHERE para especificar um valor de comparação. No entanto, eles não são permitidos para identificadores (como nomes de tabelas ou colunas).

params

Uma matriz de lista opcional com tantos elementos quantos forem os parâmetros vinculados na instrução SQL que está sendo executada. Cada valor é tratado como uma string.

Valor Retornado

Retorna false em caso de falha. Para consultas bem-sucedidas que produzem um conjunto de resultados, como SELECT, SHOW, DESCRIBE ou EXPLAIN, retorna um objeto mysqli_result. Para outras consultas bem-sucedidas, retorna true.

Exemplos

Exemplo #1 mysqli::execute_query() exemplo

Estilo orientado à objeto

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$query = 'SELECT Name, District FROM City WHERE CountryCode=? ORDER BY Name LIMIT 5';
$result = $mysqli->execute_query($query, ['DEU']);
foreach (
$result as $row) {
printf("%s (%s)\n", $row["Name"], $row["District"]);
}

Estilo procedural

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = 'SELECT Name, District FROM City WHERE CountryCode=? ORDER BY Name LIMIT 5';
$result = mysqli_execute_query($link, $query, ['DEU']);
foreach (
$result as $row) {
printf("%s (%s)\n", $row["Name"], $row["District"]);
}

Os exemplos acima irão imprimir algo similar à:

Aachen (Nordrhein-Westfalen)
Augsburg (Baijeri)
Bergisch Gladbach (Nordrhein-Westfalen)
Berlin (Berliini)
Bielefeld (Nordrhein-Westfalen)

Veja Também

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top