當同一個SQL多次查詢(執行)時,只是每次的查詢條件(資料)不一樣,那麼,使用prepare就對了.
它可大大減少查詢(執行)時間,伺服器資源消耗..
原型:
PDOStatement PDO::prepare(string query [, array driver_options])
預留位置:
1,有名預留位置(:named parameters)
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 ,並分配結果集中的列值給 PDOStatement::bindColumn()方法綁定PHP 變數。
返回一個包含結果集中所有行的數組
array PDOStatement::fetchAll([int fetch_style])
從結果集中的下一行返回單獨的一列
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()