同じ SQL を複数回クエリ (実行) するが、クエリ条件 (data) が毎回異なる場合は、prepare を使用します。
クエリ (実行) 時間とサーバー リソースの消費を大幅に削減できます。
プロトタイプ:
PDOStatement PDO::prepare(string query [, array driver_options])
プレースホルダー:
1,名前付きプレースホルダー (:名前付きパラメーター)
2、疑問符プレースホルダー (?)
例:
INSERT INTO products SET sku = :sku, name = :name;INSERT INTO products SET sku = ?, name = ?;
パラメータを指定された変数名にバインドします:
bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )//命名占位符$stmt->bindParam(':sku', $sku);$stmt->bindParam(':title', $title);//问号占位符$stmt->bindParam(1, $sku);$stmt->bindParam(2, $title);
ステップの実行:
$dbh->prepare(); //准备$dbh->bindParam(); //绑定参数$dbh->execute(); //执行
返されるフィールドの数をクエリします。
integer PDOStatement::columnCount()
から次のデータ行を返します。結果セット:
mixed PDOStatement::fetch([int fetch_style [, int cursor_orientation [, int cursor_offset]]])
一般的に使用される fetch_style:
PDO::FETCH_ASSOC: 結果セット列のインデックスを返します 名前の配列
PDO::FETCH_BOTH (デフォルト): インデックスが結果セットの列名と 0 で始まる列番号である配列を返します。
PDO::FETCH_NUM: インデックスが 0 の配列を返します。開始結果セット列番号
PDO::FETCH_OBJ: 結果セット列名に対応する属性名を持つ匿名オブジェクトを返します
PDO::FETCH_BOUND: TRUE を返し、結果セット列を割り当てます値は、PHP 変数を PDOStatement::bindColumn() メソッドにバインドします。
結果セット内のすべての行を含む配列を返します
array PDOStatement::fetchAll([int fetch_style])
結果セットの次の行から 1 つの列を返します
string PDOStatement::fetchColumn([int column_number])
バインド列名:
boolean PDOStatement::bindColumn(mixed column, mixed ¶m [, int type [, int maxlen [, mixed driver_options]]])
操作トランザクション:
開始:
boolean PDO::beginTransaction();
送信:
boolean PDO::commit();
ロールバック:
boolean PDO::commit()