pdostatement::execute-k8凯发旗舰
(php 5 >= 5.1.0, php 7, php 8, pecl pdo >= 0.1.0)
pdostatement::execute — 执行预处理语句
说明
public pdostatement::execute(?array $params
= null
): bool
执行预处理语句。如果预处理语句含有参数标记,必须选择下面其中一种做法:
必须调用 pdostatement::bindparam() 和/或 pdostatement::bindvalue() 以将变量或值(分别)绑定到参数标记。如果有的话,通过关联参数标记绑定的变量来传递输入值和取得输出值
或必须传递只作为输入参数值的数组
参数
params
一个元素个数和将被执行的 sql 语句中绑定的参数一样多的数组。所有的值作为
pdo::param_str
对待。多个值不能绑定到一个参数;比如,不允许绑定两个值到 in()子句中一个单独的命名参数。
绑定的值不能比指定的多;如果在
params
中存在比 pdo::prepare() 预处理的sql 指定的多的键名,则此语句将会失败并发出一个错误。
返回值
成功时返回 true
, 或者在失败时返回 false
。
错误/异常
如果属性 pdo::attr_errmode
设置为 pdo::errmode_warning
,则发出级别为 e_warning
的错误。
如果属性 pdo::attr_errmode
设置为 pdo::errmode_exception
,则抛出 pdoexception。
范例
example #1 执行绑定变量和值的预处理语句
/* 通过绑定变量和值执行预处理语句 */
$calories = 150;
$colour = 'gre';
$sth = $dbh->prepare('select name, colour, calories
from fruit
where calories < :calories and colour like :colour');
$sth->bindparam('calories', $calories, pdo::param_int);
/* 名称也可以以冒号":"为前缀(可选)*/
$sth->bindvalue(':colour', "%$colour%");
$sth->execute();
?>
example #2 使用命名值数组执行预处理语句
/* 通过传递一个含有插入值的数组执行一条预处理语句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('select name, colour, calories
from fruit
where calories < :calories and colour = :colour');
$sth->execute(array('calories' => $calories, 'colour' => $colour));
/* 数组键也可以以冒号":"为前缀(可选)*/
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>
example #3 使用位置值数组执行预处理语句
#pdo #php