mysqli::execute_query
mysqli_execute_query
(PHP 8 >= 8.2.0)
mysqli::execute_query -- mysqli_execute_query — Prepares, binds parameters, and executes SQL statement
说明
面向对象风格
The statement template can contain zero or more question mark
(?) parameter markers—also called placeholders.
The parameter values must be provided as an array using
params parameter.
A prepared statement is created under the hood but it's never exposed
outside of the function. It's impossible to access properties of the
statement as one would do with the mysqli_stmt object.
Due to this limitation, the status information is copied to the
mysqli object and is available using its methods, e.g.
mysqli_affected_rows() or mysqli_error().
注意:
In the case where a statement is passed to
mysqli_execute_query() that is longer than
max_allowed_packet of the server, the returned
error codes are different depending on the operating system.
The behavior is as follows:
参数
-
mysql - 仅以过程化样式:由 mysqli_connect() 或
mysqli_init() 返回的 mysqli 对象。
query
-
The query, as a string. It must consist of a single SQL statement.
The SQL statement may contain zero or more parameter markers
represented by question mark (?) characters
at the appropriate positions.
注意:
The markers are legal only in certain places in SQL statements.
For example, they are permitted in the VALUES()
list of an INSERT statement (to specify column
values for a row), or in a comparison with a column in a
WHERE clause to specify a comparison value.
However, they are not permitted for identifiers (such as table or
column names).
params
-
An optional list array with as many elements as there are bound parameters in the SQL statement being executed. Each value is treated as a string.
返回值
Returns false on failure. For successful queries which produce a result
set, such as SELECT, SHOW, DESCRIBE or
EXPLAIN, returns
a mysqli_result object. For other successful queries,
returns true.
示例
示例 #1 mysqli::execute_query() example
<?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"]);
}
Aachen (Nordrhein-Westfalen)
Augsburg (Baijeri)
Bergisch Gladbach (Nordrhein-Westfalen)
Berlin (Berliini)
Bielefeld (Nordrhein-Westfalen)