PDOStatement->execute()
(PHP 5 >= 5.1.0, PECL pdo:0.1-1.0.3)
PDOStatement->execute() — プリペアドステートメントを実行する
説明
PDOStatement
bool execute
([ array $input_parameters
] )
プリペアドステートメントを実行します。もし、プリペアドステートメントが パラメータマーカを含む場合、次のいずれかを行わなければなりません。
パラメータマーカに PHP 変数をバインドするため PDOStatement->bindParam() をコールする。 関連づけされたパラメータマーカがあれば、バインドされた変数は入力値を渡す もしくは出力値を受け取ります。
あるいは、入力専用のパラメータ値の配列を渡す
パラメータ
- input_parameters
-
実行される SQL 文の中のバインドパラメータと同数の要素からなる、 値の配列。
ひとつのパラメータに対して複数の値をバインドすることはできません。 例えば、IN() 句の中のひとつのパラメータに対して 2 つの値をバインドすることはできません。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
例
Example#1 バインド変数を伴うプリペアドステートメントの実行
<?php
/* バインド変数を伴うプリペアドステートメントの実行 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>
Example#2 入力値の配列を伴うプリペアドステートメントの実行 (名前つきパラメータ)
<?php
/* 入力値の配列を伴うプリペアドステートメントの実行 */
$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));
?>
Example#3 入力値の配列を伴うプリペアドステートメントの実行 (プレースホルダ)
<?php
/* 入力値の配列を伴うプリペアドステートメントの実行 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>
Example#4 疑問符プレースホルダを伴うプリペアドステートメントの実行
<?php
/* バインド変数を伴うプリペアドステートメントの実行 */
$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();
?>