指定したデータベースに対してクエリを実行し、配列を返す

# sqlite_array_query

# SQLiteDatabase::arrayQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_array_query -- SQLiteDatabase::arrayQuery — 指定したデータベースに対してクエリを実行し、配列を返す

### 説明

public sqlite_array_query ( resource `$dbhandle` , string `$query` [, int `$result_type` = SQLITE_BOTH [, bool `$decode_binary` = true ]] ) : array
sqlite_array_query ( string `$query` , resource `$dbhandle` [, int `$result_type` = SQLITE_BOTH [, bool `$decode_binary` = true ]] ) : array

オブジェクト指向型 (メソッド):

SQLiteDatabase::arrayQuery ( string `$query` [, int `$result_type` = SQLITE_BOTH [, bool `$decode_binary` = true ]] ) : array

sqlite_array_query() は与えられたクエリを実行し、 結果セット全体を配列で返します。これは、結果セットの各レコードに関して sqlite_query()に続いて sqlite_fetch_array()をコールすることに似ています。 sqlite_array_query() は前述の方法よりも著しく高速です。

ヒント

sqlite_array_query() は、返すレコードが45件以下 のクエリーで最も有効です。これ以上のデータがある場合には、 より性能を最適化するために、代わりに sqlite_unbuffered_query()を使用するようなスクリ プトを書くことをお薦めします。

### パラメータ

`query`

  実行するクエリ

  クエリ内のデータは 適切にエスケープ する必要があります。

`dbhandle`

  SQLite データベースリソース。手続きに従って、 sqlite_open() から返されます。 このパラメータは、 オブジェクト指向言語型メソッドを使用する場合は不要です。

`result_type`

  オプションの `result_type` パラメータには定数を指定でき、返される配列の添字を定義します。 `SQLITE_ASSOC` を用いると、連想配列の添字(名前フィールド)のみが 返されます。一方、`SQLITE_NUM` は、 数値の添字(フィールド番号)のみを返します。`SQLITE_BOTH` は、 連想配列の添字と数値の添字の両方を返します。 `SQLITE_BOTH` がこの関数のデフォルトです。

`decode_binary`

  `decode_binary` パラメータが `TRUE` (デフォルト)に 設定された場合、PHP はバイナリエンコーディングをデコードします。 これは、sqlite_escape_string() によりエンコードされたデータに 適用されます。sqlite をサポートする他のアプリケーションにより 作成されたデータベースを処理する時以外は、この値をデフォルトのままにしておくべきです。

> 注意: (MySQL のような)他のデータベースエクステンションとの互換性のため、 2 種類の構文がサポートされています。 推奨されるのは最初の構文で、`dbhandle` パラメータを 関数の最初のパラメータとするものです。

### 返り値

結果セット全体の配列、その他の場合は `FALSE` を返します。

`SQLITE_ASSOC` および `SQLITE_BOTH` で 返されるカラム名は、設定オプション sqlite.assoc_case の値に基づき、 大文字小文字が変換されます。

### 例

例1 手続き型

`<?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'Name: ' . $entry['name'] . ' E-mail: ' . $entry['email'];
}
?>`

例2 オブジェクト指向言語型スタイル

`<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$result = $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'Name: ' . $entry['name'] . ' E-mail: ' . $entry['email'];
}
?>`

### 参考

- sqlite_query() - 指定したデータベースに対してクエリを実行し、結果ハンドル を返す
- sqlite_fetch_array() - 結果セットから次のレコードを配列として取得する
- sqlite_fetch_string() - sqlite_fetch_single のエイリアス