W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::execute — 執(zhí)行預(yù)處理語句
public PDOStatement::execute(?array $params = null): bool
執(zhí)行預(yù)處理語句。如果預(yù)處理語句含有參數(shù)標(biāo)記,必須選擇下面其中一種做法:
params
一個(gè)元素個(gè)數(shù)和將被執(zhí)行的 SQL 語句中綁定的參數(shù)一樣多的數(shù)組。所有的值作為 PDO::PARAM_STR
對(duì)待。
多個(gè)值不能綁定到一個(gè)參數(shù);比如,不允許綁定兩個(gè)值到 IN()子句中一個(gè)單獨(dú)的命名參數(shù)。
綁定的值不能比指定的多;如果在 params
中存在比 PDO::prepare() 預(yù)處理的SQL 指定的多的鍵名,則此語句將會(huì)失敗并發(fā)出一個(gè)錯(cuò)誤。
成功時(shí)返回 true, 或者在失敗時(shí)返回 false。
如果屬性 PDO::ATTR_ERRMODE 設(shè)置為 PDO::ERRMODE_WARNING,則發(fā)出級(jí)別為 E_WARNING 的錯(cuò)誤。
如果屬性 PDO::ATTR_ERRMODE 設(shè)置為 PDO::ERRMODE_EXCEPTION,則拋出 PDOException。
示例 #1 執(zhí)行綁定變量和值的預(yù)處理語句
<?php
/* 通過綁定變量和值執(zhí)行預(yù)處理語句 */
$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);
/* 名稱也可以以冒號(hào)“:”為前綴(可選)*/
$sth->bindValue(':colour', "%$colour%");
$sth->execute();
?>
示例 #2 使用命名值數(shù)組執(zhí)行預(yù)處理語句
<?php
/* 通過傳遞一個(gè)含有插入值的數(shù)組執(zhí)行一條預(yù)處理語句 */
$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));
/* 數(shù)組鍵也可以以冒號(hào)“:”為前綴(可選)*/
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>
示例 #3 使用位置值數(shù)組執(zhí)行預(yù)處理語句
<?php
/* 通過傳遞一個(gè)插入值的數(shù)組執(zhí)行一條預(yù)處理語句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>
示例 #4 使用綁定到位置占位符的變量執(zhí)行預(yù)處理語句
<?php
/* 通過綁定 PHP 變量執(zhí)行一條預(yù)處理語句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>
示例 #5 使用數(shù)組執(zhí)行一條含有 IN 子句的預(yù)處理語句
<?php
/* 使用一個(gè)數(shù)組的值執(zhí)行一條含有 IN 子句的預(yù)處理語句 */
$params = array(1, 21, 63, 171);
/* 創(chuàng)建一個(gè)填充了和params相同數(shù)量占位符的字符串 */
$place_holders = implode(',', array_fill(0, count($params), '?'));
/*
對(duì)于 $params 數(shù)組中的每個(gè)值,要預(yù)處理的語句包含足夠的未命名占位符 。
語句被執(zhí)行時(shí), $params 數(shù)組中的值被綁定到預(yù)處理語句中的占位符。
這和使用 PDOStatement::bindParam() 不一樣,因?yàn)樗枰粋€(gè)引用變量。
PDOStatement::execute() 僅作為通過值綁定的替代。
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>
注意:有些驅(qū)動(dòng)在執(zhí)行下一條語句前需要 關(guān)閉游標(biāo) 。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: