PDO -> 定義済み定数

Posted by muchag | PHP | 2010-07-09 (金) 15:54:16

定義済み定数

パラメータ(データ型)
FETCHモード
 

警告

PHP 5.1 以降、PDO はクラス定数を使用します。 それ以前のリリースでは、PDO_PARAM_BOOL の形式のグローバル変数を使用します。
 

パラメータ(データ型)
PDO::PARAM_BOOL ( integer )

ブールデータ型を表します。
 

PDO::PARAM_NULL ( integer )

SQL NULL データ型を表します。
 

PDO::PARAM_INT ( integer )

SQL INTEGER データ型を表します。
 

PDO::PARAM_STR ( integer )

SQL CHAR, VARCHAR, または他の文字列データ型を表します。
 

PDO::PARAM_LOB ( integer )

SQL ラージオブジェクト型を表します。
 

PDO::PARAM_STMT ( integer )

 

PDO::PARAM_INPUT_OUTPUT ( integer )

パラメータがストアドプロシージャ用の入力パラメータであることを指定します。 この値は、PDO::PARAM_* データ型とのビットORとして指定する必要があります。
 

FETCHモード

実験結果は以下のコードによって取得したもの。

  1. // SQL文の生成
  2. $sql = "SELECT * FROM z_test";
  3.  
  4. // パラメータの設定
  5. $param = array();
  6.  
  7. // プリペアドステートメント
  8. $sth = $dbh->prepare($sql);
  9.  
  10. // クエリ実行
  11. $sth->execute($params);
  12.  
  13. // クエリ結果を配列に格納
  14. $row = array();
  15. $row = $sth->fetch(PDO::FETCH_PROPS_LAZY);

まだ触りたてでよくわからずにやっている。
何も考えずにひとまず実験した。

エラーが出たもの、説明がないものは実験結果の記載がない。
 

PDO::FETCH_LAZY ( integer )

取得する方法として、 結果セットが返すカラム名と同じ名前の変数を有するオブジェクトとして各行を返す方法を 指定します。 PDO::FETCH_LAZY は、アクセスされたものと同じ名前のオブジェクト変数を作成します。

var_dump($row); 
object(PDORow)#2 (4) {
[“queryString”]=>
string(25) ”
SELECT *
FROM z_test

[“id”]=>
string(1) “1”
[“name”]=>
string(9) “夢茶爺”
[“birthday”]=>
string(10) “2001-01-01”
}
print_r($row); 
PDORow Object
(
[queryString] =>
SELECT *
FROM z_test

[id] => 1
[name] => 夢茶爺
[birthday] => 2001-01-01
)

 

PDO::FETCH_ASSOC ( integer )

結果セットの対応するカラム名にふられているものと同じキーを付けた 連想配列として各行を返す取得方法を指定します。 もし結果セットが複数のカラムを同名で含む場合、 PDO::FETCH_ASSOC はカラム名毎に 1 つの値のみ返します。

var_dump($row); 
array(3) {
[“id”]=>
string(1) “1”
[“name”]=>
string(9) “夢茶爺”
[“birthday”]=>
string(10) “2001-01-01”
}
print_r($row); 
Array
(
[id] => 1
[name] => 夢茶爺
[birthday] => 2001-01-01
)

 

PDO::FETCH_NAMED ( integer )

結果セットの対応するカラム名にふられているものと同じキーを付けた 連想配列として各行を返す取得方法を指定します。 もし結果セットが複数のカラムを同名で含む場合、 PDO::FETCH_NAMED はカラム名毎に値の配列を返します。

var_dump($row); 
array(3) {
[“id”]=>
string(1) “1”
[“name”]=>
string(9) “夢茶爺”
[“birthday”]=>
string(10) “2001-01-01”
}
print_r($row); 
Array
(
[id] => 1
[name] => 夢茶爺
[birthday] => 2001-01-01
)

 

PDO::FETCH_NUM ( integer )

結果セットの対応するカラム番号にふられているものと同じ添字を付けた 配列として各行を返す取得方法を指定します。番号は0から始まります。

var_dump($row); 
array(3) {
[0]=>
string(1) “1”
[1]=>
string(9) “夢茶爺”
[2]=>
string(10) “2001-01-01”
}
print_r($row); 
Array
(
[0] => 1
[1] => 夢茶爺
[2] => 2001-01-01
)

 

PDO::FETCH_BOTH ( integer )

結果セットと同じカラム名と0から始まるカラム番号を付けた配列として各行を返す 方法を指定します。

var_dump($row); 
array(6) {
[“id”]=>
string(1) “1”
[0]=>
string(1) “1”
[“name”]=>
string(9) “夢茶爺”
[1]=>
string(9) “夢茶爺”
[“birthday”]=>
string(10) “2001-01-01”
[2]=>
string(10) “2001-01-01”
}
print_r($row); 
Array
(
[id] => 1
[0] => 1
[name] => 夢茶爺
[1] => 夢茶爺
[birthday] => 2001-01-01
[2] => 2001-01-01
)

 

PDO::FETCH_OBJ ( integer )

結果セットが返すカラム名と同じ名前のプロパティを有する オブジェクトとして各行を返す方法を指定します。

var_dump($row); 
object(stdClass)#2 (3) {
[“id”]=>
string(1) “1”
[“name”]=>
string(9) “夢茶爺”
[“birthday”]=>
string(10) “2001-01-01”
}
print_r($row); 
stdClass Object
(
[id] => 1
[name] => 夢茶爺
[birthday] => 2001-01-01
)

 

PDO::FETCH_BOUND ( integer )

結果セットのカラムの値を PDOStatement::bindParam() または PDOStatement::bindColumn() メソッドでバインドされた PHP変数に代入し、TRUEを返すという取得方法を指定します。

var_dump($row); 
bool(true)
print_r($row); 
1

 

PDO::FETCH_COLUMN ( integer )

結果セットの次の行から指定された一つのカラムのみを返す取得方法を指定します。

var_dump($row); 
string(1) “1”
print_r($row); 
1

 

PDO::FETCH_CLASS ( integer )

カラムをクラスのプロパティにマップしつつ、 指定されたクラスの新規インスタンスを返す取得方法を指定します。
注意: 要求されたクラスにプロパティが存在しない場合は、マジックメソッド __set がコールされます。
 

PDO::FETCH_INTO ( integer )

カラムをクラスのプロパティにマップしつつ、 指定されたクラスの既存のインスタンスを更新する取得方法を指定します。
 

PDO::FETCH_FUNC ( integer )

 

PDO::FETCH_GROUP ( integer )

 

PDO::FETCH_UNIQUE ( integer )

 

PDO::FETCH_KEY_PAIR ( integer )

最初のカラムの値をキー、それ以降のカラムの内容を値として持つ連想配列形式でデータを取得します。 PHP 5.2.3 以降で使用可能です。
 

PDO::FETCH_CLASSTYPE ( integer )

最初のカラムの値からクラス名を決定します。

var_dump($row); 
array(6) {
[“id”]=>
string(1) “1”
[0]=>
string(1) “1”
[“name”]=>
string(9) “夢茶爺”
[1]=>
string(9) “夢茶爺”
[“birthday”]=>
string(10) “2001-01-01”
[2]=>
string(10) “2001-01-01”
}
print_r($row); 
Array
(
[id] => 1
[0] => 1
[name] => 夢茶爺
[1] => 夢茶爺
[birthday] => 2001-01-01
[2] => 2001-01-01
)

 

PDO::FETCH_SERIALIZE ( integer )

PDO::FETCH_INTO と同様ですが、 シリアライズした文字列としてオブジェクトを提供します。 PHP 5.1.0 以降で使用可能です。

var_dump($row); 
array(6) {
[“id”]=>
string(1) “1”
[0]=>
string(1) “1”
[“name”]=>
string(9) “夢茶爺”
[1]=>
string(9) “夢茶爺”
[“birthday”]=>
string(10) “2001-01-01”
[2]=>
string(10) “2001-01-01”
}
print_r($row); 
Array
(
[id] => 1
[0] => 1
[name] => 夢茶爺
[1] => 夢茶爺
[birthday] => 2001-01-01
[2] => 2001-01-01
)

 

PDO::FETCH_PROPS_LATE ( integer )

PHP 5.2.0 以降で使用可能です。

var_dump($row); 
array(6) {
[“id”]=>
string(1) “1”
[0]=>
string(1) “1”
[“name”]=>
string(9) “夢茶爺”
[1]=>
string(9) “夢茶爺”
[“birthday”]=>
string(10) “2001-01-01”
[2]=>
string(10) “2001-01-01”
}
print_r($row); 
Array
(
[id] => 1
[0] => 1
[name] => 夢茶爺
[1] => 夢茶爺
[birthday] => 2001-01-01
[2] => 2001-01-01
)

 
PHPマニュアル:定義済み定数

PHP | 2010-07-09 (金) 15:54:16 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment