DB_Pgsql_Typeは、複雑なPostgreSQL 8.3+型をPHPの対応する型に、またはその逆に変換するためのフレームワークです。 これにより、一般的なPHP配列と同じくらい簡単に、複合型(複合型の2次元配列など)のフィールドを操作できます。
次のデータ型とネストされた組み合わせがサポートされています。
- 任意のタイプの要素の配列 (多次元を含む)。
- 複合型とROWTYPE(特に、複合フィールドまたは配列フィールド自体を含む)。
- Hstore (複雑な要素を含むものを含む)。
- その他のタイプ:TIMESTAMP(Unix時間に変換)、DATE、TIME、BOOLEANなど。
PostgreSQLは、複雑なデータ型のサポートで有名です。 たとえば、テーブルの列を行の2次元配列として定義できます。
CREATE TABLE something(
id INTEGER、
マトリックスTEXT [] []
);
何か(id、matrix)VALUES(
1、ARRAY [ARRAY ['one'、 'two']、ARRAY ['three "3"'、 'four']]
);
ただし、PHPスクリプトでは、そのような列から値を取得しようとすると、次のようになります。
$ rs = $ pdo-> query( "SELECT FROM FROM WHERE WHERE id = 1");
echo $ rs-> fetchColumn();
次のような、このデータの文字列表現のみが表示されます。
{{one、two}、{"three \" 3 \ ""、four}}
DB_Pgsql_Typeでは、{{one、two}、{"three \" 3 \ ""、four}}形式の式を2次元のPHP配列に変換できます(引用符、アポストロフィ、空文字列、NULLおよびなど)または、その逆、データベースに2次元配列を書き込む必要がある場合。
ライブラリのソースとドキュメントは次の場所にあります。
dklab.ru/lib/DB_Pgsql_Typeここでは、簡単な例として、上記のリストから文字列の2次元配列を解析するコードを示します。
//「文字列配列の配列」タイプのパーサーを作成します。
$ parser = new DB_Pgsql_Type_Array(
新しいDB_Pgsql_Type_Array(
new DB_Pgsql_Type_String()
)
);
//配列を返します(array( "one"、 "two")、array( 'three "3"'、 "four"))
$ array = $ parser-> input( '$ Blk {' one、two}、{"three \" 3 \ ""、four '}');
データベースに挿入するために、PHP配列上に文字列を構築し直すことができます。
echo $ parser-> output($ array);
ライブラリをダウンロードして、他の例を参照してください :配列、複合型、ROWTYPE、hstoreなどの操作