関数・クラス解説

PDOStatement::execute

version:PHP 5 >= 5.1.0, PHP 7, PECL pdo (公式)

プリペアドステートメントを実行する

公式リファレンス

書式

public PDOStatement::execute ([ array $input_parameters = NULL ] ) : bool

説明

プリペアドステートメントを実行します。 もし、プリペアドステートメントがパラメータマーカを含む場合、次のいずれかを行わなければなりません。

  • パラメータマーカに PHP 変数や値を(それぞれ)バインドするため PDOStatement::bindParam() や PDOStatement::bindValue() をコールする。 関連づけされたパラメータマーカがあれば、バインドされた変数は入力値を渡す もしくは出力値を受け取ります。

  • あるいは、入力専用のパラメータ値の配列を渡す

パラメータ

input_parameters
実行される SQL 文の中のバインドパラメータと同数の要素からなる、 値の配列。すべての値は PDO::PARAM_STR として扱われます。 ひとつのパラメータに対して複数の値をバインドすることはできません。 例えば、IN() 句の中のひとつのパラメータに対して 2 つの値をバインドすることはできません。 指定した数よりも多い値をバインドすることはできません。 input_parameters のキーが PDO::prepare() で指定した SQL にある数より多い場合は、 ステートメントが失敗してエラーが発生します。

返値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

注意

注意: ドライバによっては、次のステートメントを実行する前に カーソルを閉じ なければならないものもあります。

サンプル

例1 変数や値のバインドを伴うプリペアドステートメントの実行

/* 変数や値のバインドを伴うプリペアドステートメントの実行 */ $calories = 150; $colour = 'gre'; $sth = $dbh->prepare('SELECT name, colour, calories     FROM fruit     WHERE calories < :calories AND colour LIKE :colour'); $sth->bindParam(':calories', $calories, PDO::PARAM_INT); $sth->bindValue(':colour', "%{$colour}%"); $sth->execute();

例2 入力値の配列を伴うプリペアドステートメントの実行 (名前つきパラメータ)

/* 入力値の配列を伴うプリペアドステートメントの実行 */ $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));

例3 入力値の配列を伴うプリペアドステートメントの実行 (プレースホルダ)

/* 入力値の配列を伴うプリペアドステートメントの実行 */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories     FROM fruit     WHERE calories < ? AND colour = ?'); $sth->execute(array($calories, $colour));

例4 疑問符プレースホルダを伴うプリペアドステートメントの実行

/* バインド変数を伴うプリペアドステートメントの実行 */ $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();

例5 IN 句で配列を使うプリペアドステートメントの実行

/* IN 句で配列を使うプリペアドステートメントの実行 */ $params = array(1, 21, 63, 171); /* パラメータのプレースホルダ用の文字列を、パラメータ数に合わせて作ります */ $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);

参考

  • PDO::prepare() - 文を実行する準備を行い、文オブジェクトを返す
  • PDOStatement::bindParam() - 指定された変数名にパラメータをバインドする
  • PDOStatement::fetch() - 結果セットから次の行を取得する
  • PDOStatement::fetchAll() - 全ての結果行を含む配列を返す
  • PDOStatement::fetchColumn() - 結果セットの次行から単一カラムを返す
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール