PDO::prepare — 準備要執行的SQL語句並返回一個 PDOStatement 對象(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
說明
文法
public PDOStatement PDO::prepare ( string $statement [, array $driver_options = array() ] )
為 PDOStatement::execute() 方法準備要執行的SQL語句,SQL語句可以包含零個或多個命名(:name)或問號(?)參數標記,參數在SQL執行時會被替換。
你不能在 SQL 陳述式中同時包含命名(:name)或問號(?)參數標記,只能選擇其中一種風格。
預先處理 SQL 陳述式中的參數在使用PDOStatement::execute()方法時會傳遞真實的參數。
參數
statement:合法的SQL語句。
driver_options:此數組包含一個或多個 key=>value 對來設定 PDOStatement 對象的屬性, 最常使用到是將PDO::ATTR_CURSOR值設定為PDO::CURSOR_SCROLL來請求一個可滾動遊標。
傳回值
如果成功,PDO::prepare()返回PDOStatement對象,如果失敗返回 FALSE 或拋出異常 PDOException 。
執行個體
使用命名(:name)參數來準備SQL語句
<?php/* 通過數組值向預先處理語句傳遞值 */$sql = 'SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'; $sth = $dbh->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(); ?>
使用問號(?)參數來準備SQL語句
<?php/* 通過數組值向預先處理語句傳遞值 */$sth = $dbh->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(); ?>