次のデータ型とネストされた組み合わせがサポートされています。
- 任意のタイプの要素の配列 (多次元を含む)。
- 複合型とROWTYPE(特に、複合フィールドまたは配列フィールド自体を含む)。
- Hstore (複雑な要素を含むものを含む)。
- その他のタイプ:TIMESTAMP(Unix時間に変換)、DATE、TIME、BOOLEANなど。
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などの操作