array &getCol (
string $query
,
mixed $col = 0
,
mixed $params = array()
)
指定したクエリを実行し、データの最初のカラムを配列に格納したあとで 結果セットを開放します。
$query
SQL クエリあるいはプリペアドステートメント。
$col
どのカラムを返すか (integer [0 から始まるカラム番号] あるいは string [カラム名])。
$params
プリペアドステートメントに追加される、配列・文字列あるいは数値のデータ。 配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。 配列以外を指定した場合はプレースホルダがひとつであることを意味し、 配列を指定した場合は配列の個々の要素がそれぞれのパラメータに対応します。
指定された場合は、 prepare()/ execute() が使用されます。
array - 結果セットのカラムのデータを含む数値添字の配列、 あるいは失敗した場合に DB_Error オブジェクトを返します。 配列の添字は 0 から始まります。
エラーコード | エラーメッセージ | 原因 | 対応法 |
---|---|---|---|
DB_ERROR_INVALID | invalid | 準備された SQL 文が無効です。 | プレースホルダを使用する SQL 文を用いる場合は prepare() のドキュメント を参照ください。 |
DB_ERROR_MISMATCH | mismatch | パラメータの数が、プリペアドステートメント中の プレースホルダの数と一致しません。 |
$query に渡した
prepare() 済みの文中の
プレースホルダの数が、$params
で渡した項目の数と一致するかどうかを調べます。
|
DB_ERROR_NOSUCHFIELD | no such field |
$col に渡したカラム番号あるいはカラム名が不正です。
|
クエリ結果に存在するカラム番号あるいはカラム名を使用します。 |
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。 |
その他のエラーコード | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。 |
This function can not be called statically.
getCol() の使用法
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo');
if (PEAR::isError($data)) {
die($data->getMessage());
}
print_r($data);
?>
出力は、以下のようになります。
Array
(
[0] => Juan
[1] => Kyu
)
カラム番号で指定したカラムを取得するための getCol() の使用法
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo', 1);
if (PEAR::isError($data)) {
die($data->getMessage());
}
print_r($data);
?>
出力は、以下のようになります。
Array
(
[0] => 1991-01-11 21:31:41
[1] => 1992-02-12 22:32:42
)
カラム名で指定したカラムを取得するための getCol() の使用法
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo', 'df');
if (PEAR::isError($data)) {
die($data->getMessage());
}
print_r($data);
?>
出力は、以下のようになります。
Array
(
[0] => 1991-01-11 21:31:41
[1] => 1992-02-12 22:32:42
)
プレースホルダがひとつの場合の prepare/execute モードにおける getCol() の使用法
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo WHERE nf = ?',
'df', 5);
if (PEAR::isError($data)) {
die($data->getMessage());
}
print_r($data);
?>
出力は、以下のようになります。
Array
(
[0] => 1991-01-11 21:31:41
)
プレースホルダがふたつの場合の prepare/execute モードにおける getCol() の使用法
<?php
// $db という名前の DB オブジェクトを取得しているとします...
$data =& $db->getCol('SELECT cf, df FROM foo WHERE nf IN (?, ?)',
'df', array(5, 10));
if (PEAR::isError($data)) {
die($data->getMessage());
}
print_r($data);
?>
出力は、以下のようになります。
Array
(
[0] => 1991-01-11 21:31:41
[1] => 1992-02-12 22:32:42
)
getOne()、 getRow()、 getAssoc()、 getAll()、 query()、 "導入 - 準備と実行"