mysqli::execute_query
mysqli_execute_query
(PHP 8 >= 8.2.0)
mysqli::execute_query -- mysqli_execute_query — Prepara, vincula parâmetros e executa a instrução SQL
Descrição
Estilo orientado a objetos
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
-
mysql - Somente no estilo procedural: Um objeto mysqli
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
-
Um array 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 Exemplo de mysqli::execute_query()
Estilo orientado a objetos
<?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"]);
}
<?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 produzirão
algo semelhante a:
Aachen (Nordrhein-Westfalen)
Augsburg (Baijeri)
Bergisch Gladbach (Nordrhein-Westfalen)
Berlin (Berliini)
Bielefeld (Nordrhein-Westfalen)