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 。
<?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();?>
<?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();?>