哈希空间 Ctrl + F 进行搜索
首页 php手册中文版 CSS中文手册 哈希文档 Markdown在线工具

PHP execute 组件

mysqli::execute_query

mysqli_execute_query

(PHP 8 >= 8.2.0)

mysqli::execute_query -- mysqli_execute_queryPrepares, binds parameters, and executes SQL statement

说明

面向对象风格

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

过程化风格

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

Prepares the SQL query, binds parameters, and executes it. The mysqli::execute_query() method is a shortcut for mysqli::prepare(), mysqli_stmt::bind_param(), mysqli_stmt::execute(), and mysqli_stmt::get_result().

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:

  • On Linux returns an error code of 1153. The error message means got a packet bigger than max_allowed_packet bytes.

  • On Windows returns an error code 2006. This error message means server has gone away.

参数

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)

参见

打开 哈希空间 微信小程序中查看更佳