DB_Pgsql_Type:複雑なPostgreSQLタイプからPHPへ、またはその逆への透過的な変換

DB_Pgsql_Typeは、複雑なPostgreSQL 8.3+型をPHPの対応する型に、またはその逆に変換するためのフレームワークです。 これにより、一般的なPHP配列と同じくらい簡単に、複合型(複合型の2次元配列など)のフィールドを操作できます。



次のデータ型とネストされた組み合わせがサポートされています。

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などの操作



All Articles