新聞中心
本文操作環(huán)境:windows7系統(tǒng)、php7.1版、DELL G3電腦

專注于為中小企業(yè)提供網(wǎng)站建設、網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)大安市免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了超過千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
php prepare的用法是什么?
PDO::prepare
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PHP 8,PECL pdo >= 0.1.0)
PDO::prepare — 準備要執(zhí)行的語句,并返回語句對象
說明
public PDO::prepare(string $statement, array $driver_options = array()): PDOStatement
為 PDOStatement::execute() 方法準備待執(zhí)行的 SQL 語句。 語句模板可以包含零個或多個參數(shù)占位標記,格式是命名(:name)或問號(?)的形式,當它執(zhí)行時將用真實數(shù)據(jù)取代。 在同一個語句模板里,命名形式和問號形式不能同時使用;只能選擇其中一種參數(shù)形式。 請用參數(shù)形式綁定用戶輸入的數(shù)據(jù),不要直接字符串拼接到查詢里。
調(diào)用 PDOStatement::execute() 時,每一個值的參數(shù)占位標記,名稱必須唯一。 除非啟用模擬(emulation)模式,同一個語句里無法使用重名的參數(shù)。
注意:
參數(shù)占位符僅能字面上展示完整的數(shù)據(jù)。不能是字面的一部分,不能是關鍵詞,不能是標識符,不能是其他任意的范圍。 舉例說明:不能把多個值綁到單個參數(shù)里,然后在 SQL 語句里用 IN() 查詢。
如果用不同參數(shù),通過 PDO::prepare() 和 PDOStatement::execute() 多次調(diào)用同一個 SQL 語句,將提升應用的性能 —— 驅(qū)動可以讓客戶端/服務器緩存查詢和元信息。 同時,調(diào)用 PDO::prepare() 和 PDOStatement::execute() 還能阻止 SQL 注入攻擊,不需要給參數(shù)手動加引號與轉(zhuǎn)義。
如果內(nèi)置驅(qū)動不支持參數(shù),PDO 將模擬出參數(shù)的功能;如果驅(qū)動僅僅支持其中一種風格(命名參數(shù)和問號參數(shù)兩種),也會自動重寫到另外一種風格。
注意: The parser used for emulated prepared statements and for rewriting named or question mark style parameters supports the non standard backslash escapes for single- and double quotes. That means that terminating quotes immediately preceeded by a backslash are not recognized as such, which may result in wrong detection of parameters causing the prepared statement to fail when it is executed. A work-around is to not use emulated prepares for such SQL queries, and to avoid rewriting of parameters by using a parameter style which is natively supported by the driver.
參數(shù)
statement
必須是對目標數(shù)據(jù)庫服務器有效的 SQL 語句模板。
driver_options
數(shù)組包含一個或多個 key=>value 鍵值對,為返回的 PDOStatement 對象設置屬性。 常見用法是:設置 PDO::ATTR_CURSOR 為 PDO::CURSOR_SCROLL,將得到可滾動的光標。 某些驅(qū)動有驅(qū)動級的選項,在 prepare 時就設置。
返回值
如果數(shù)據(jù)庫服務器完成準備了語句, PDO::prepare() 返回 PDOStatement 對象。 如果數(shù)據(jù)庫服務器無法準備語句, PDO::prepare() 返回 false 或拋出 PDOException (取決于 錯誤處理器)。
注意:
模擬模式下的 prepare 語句不會和數(shù)據(jù)庫服務器交互,所以 PDO::prepare() 不會檢查語句。
范例
示例 #1 命名參數(shù)形式的 SQL 語句模板
prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>
示例 #2 問號形式的 SQL 語句模板
prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?> 名稱欄目:phpprepare的用法是什么
文章起源:http://www.dlmjj.cn/article/ccdegdj.html


咨詢
建站咨詢
