PDOStatement::execute — 準備されたステートメントを実行します (PHP 5 >= 5.1.0、PECL pdo >= 0.1.0)
bool PDOStatement::execute ([ array $input_parameters ] )
準備されたステートメントを実行します。準備されたステートメントにパラメーター マーカーが含まれている場合は、次のオプションのいずれかを選択する必要があります。
PDOStatement::bindParam() を呼び出して、PHP 変数をパラメータ マーカーにバインドします。存在する場合は、入力値を渡し、パラメータ マーカーにバインドされた変数を関連付けることによって出力値を取得します。
または、配列を入力パラメータ値としてのみ渡します
入力パラメータ
実行される SQL ステートメントにバインドされたパラメーターと同じ数の要素を含む配列。すべての値は PDO::PARAM_STR として扱われます。
複数の値を 1 つのパラメータにバインドすることはできません。たとえば、IN() 句の 1 つの名前付きパラメータに 2 つの値をバインドすることはできません。
制限値は指定された数を超えることはできません。 input_parameters に PDO::prepare() で準備された SQL で指定されたキー名よりも多くのキー名がある場合、このステートメントはエラーで失敗します。
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
<?php/* PHP 変数をバインドしてプリペアドステートメントを実行します*/$calers = 150;$colour = 'red';$sth = $dbh->prepare('SELECT 名前、色、カロリー FROM フルーツ WHERE カロリー < :カロリーAND color = :colour');$sth->bindParam(':カロリー', $カロリー, PDO::PARAM_INT);$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* 挿入された値を含む配列を渡して準備済みステートメントを実行します*/$calers = 150;$colour = 'red';$sth = $dbh->prepare('SELECT name, color,かれら FROM フルーツ WHEREカロリー < :カロリー AND カラー = :カラー');$sth->execute(array(':カロリー' => $カロリー, ':カラー' => $colour));?>
<?php/* 挿入された値の配列を渡して準備されたステートメントを実行します*/$calers = 150;$colour = 'red';$sth = $dbh->prepare('SELECT name, color,かれら FROM フルーツ WHERE カロリー< ? AND color = ?');$sth->execute(array($カロリー, $colour));?>
<?php/* PHP 変数をバインドしてプリペアドステートメントを実行*/$calers = 150;$colour = 'red';$sth = $dbh->prepare('SELECT 名前、色、カロリー FROM フルーツ WHERE カロリー < ? AND color = ?');$sth->bindParam(1, $カロリー, PDO::PARAM_INT);$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);$sth->execute();?>
<?php/* 配列の値を使用して IN 句を含む準備済みステートメントを実行します */$params = array(1, 21, 63, 171);/* 同じ数の params で埋められたプレースホルダーを作成します String */$place_holders = implode(',', array_fill(0, count($params), '?'));/* $params の場合配列内の値ごとに、準備されるステートメントには十分な名前のないプレースホルダーが含まれます。 ステートメントが実行されると、$params 配列内の値が準備されたステートメント内のプレースホルダーにバインドされます。 これは参照変数が必要なため、PDOStatement::bindParam() の使用とは異なります。 PDOStatement::execute() は、値によるバインドの代替としてのみ機能します。 */$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");$sth->execute($params);?>