PHP8 db2_prepare
(PECL ibm_db2 >= 1.0.0)
db2_prepare — 准备要执行的 SQL 语句
说明
db2_prepare(resource $connection, string $statement, array $options = []): resource|false
db2_prepare() 创建一个准备好的 SQL 语句,该语句可以 包括 0 个或多个参数标记(字符) 表示输入、输出或输入/输出的参数。你可以通过 使用 db2_bind_param() 或仅用于输入值的参数作为数组添加到准备好的语句中 传递给 db2_execute()。?
在 应用:
- 性能:当您准备语句时, 数据库服务器创建优化的访问计划,用于检索数据 那句话。随后使用 db2_execute() 发出准备好的语句,使语句能够重用 访问计划,避免动态创建新访问的开销 计划您发出的每份声明。
- 安全性:当您准备报表时,您可以 包括输入值的参数标记。当您执行准备好的 带有占位符输入值的语句,数据库服务器将检查 每个输入值,以确保类型与列定义匹配,或者 参数定义。
- 高级功能:不仅参数标记 使您能够将输入值传递给准备好的 SQL 语句,它们还 使您能够从存储过程中检索 OUT 和 INOUT 参数 使用 db2_bind_param()。
参数
connection
从 db2_connect() 或 db2_pconnect() 返回的有效数据库连接资源变量。
statement
一个 SQL 语句,可以选择包含一个或多个参数标记。
options
包含语句选项的关联数组。你可以用这个 参数,用于在数据库服务器上请求可滚动游标 支持此功能。
有关有效语句选项的说明,请参见 db2_set_option()。
返回值
如果 SQL 语句已成功解析,则返回语句资源,并且 由数据库服务器准备。如果数据库服务器返回 false,则返回 返回错误。您可以通过调用 db2_stmt_error() 或 db2_stmt_errormsg() 来确定返回了哪个错误。
示例
示例 #1 准备和执行带有参数标记的 SQL 语句
下面的示例准备一个 INSERT 语句,该语句接受四个 参数标记,然后遍历包含 要传递给 db2_execute() 的输入值。
<?php
$animals = array(
array(0, 'cat', 'Pook', 3.2),
array(1, 'dog', 'Peaches', 12.3),
array(2, 'horse', 'Smarty', 350.0),
);
$insert = 'INSERT INTO animals (id, breed, name, weight)
VALUES (?, ?, ?, ?)';
$stmt = db2_prepare($conn, $insert);
if ($stmt) {
foreach ($animals as $animal) {
$result = db2_execute($stmt, $animal);
}
}
?>
参见
- db2_bind_param() - 将 PHP 变量绑定到 SQL 语句参数
- db2_execute() - 执行准备好的 SQL 语句
- db2_stmt_error() - 返回一个字符串,其中包含 SQL 语句返回的 SQLSTATE
- db2_stmt_errormsg() - 返回包含最后一个 SQL 语句错误消息的字符串