PHP 手冊
前一頁 |  | 下一頁

# PDO::prepare

(no version information, might be only in CVS)

PDO::prepare -- Prepares a statement for execution and returns a statement object

## Description

PDOStatement PDO::prepare ( string statement [, array driver_options] )

警告
這個函數是實驗性質的。這個函數的行為、名稱、和關於此函數的任何其他文件在未來PHP的發行中可能會在不通知的情況下改變。 使用此延伸需自行承擔風險。

Prepares an SQL statement to be executed by the PDOStatement::execute() method. The SQL statement can contain zero or more named (:name) or question mark (?) parameter markers for which real values will be substituted when the statement is executed.

Calling PDO::prepare() and PDOStatement::execute() for statements that will be issued multiple times with different parameter values optimizes the performance of your application and helps prevent SQL injection attacks.

## Parameters

statement

  This must be a valid SQL statement for the target database server.

driver_options

  This array holds one or more key=>value pairs to set attribute values for the PDOStatement object that this method returns. You would most commonly use this to set the PDO_ATTR_CURSOR value to PDO_CURSOR_SCROLL to request a scrollable cursor.

## Return Values

If the database server successfully prepares the statement, PDO::prepare() returns a PDOStatement object.

## 範例

範例 1. Prepare an SQL statement with named parameters

`<?php
/* Execute a prepared statement by passing an array of values */
$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();
?>`

範例 2. Prepare an SQL statement with question mark parameters

`<?php /* Execute a prepared statement by passing an array of values */ $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(); ?>`

## 參考

PDO::exec()
PDO::query()
PDOStatement::execute()

前一頁 | 內容 | 下一頁
PDO::lastInsertId | 上一層 | PDO::query