Forum und email

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'$caloriesPDO::PARAM_INT);
$sth->bindParam(':colour'$colourPDO::PARAM_STR12);
$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$caloriesPDO::PARAM_INT);
$sth->bindParam(2$colourPDO::PARAM_STR12);
$sth->execute();
?>