[PHP-users 6734] Re: FRC: New PostgreSQL function for PHP (pg_convert)
Yasuo Ohgaki
php-users@php.gr.jp
Mon, 08 Apr 2002 11:37:57 +0900
大垣です。
フィードバックありがとうございます。
PostgreSQLの型を定義されているかたは、ほとんど
いないようなのでユーザー定義型は当面サポートしない
事にしました。
最低限のドキュメントはCVSのext/pgsql/READMEを
見て頂けるようお願いします。しかし、READMEにはほ
とんど何も書いていないのでext/pgsql/tests/にあ
るテストスクリプトを見て頂くと使い方が解ると思いま
す。
http://cvs.php.net/cvs.php/php4/ext/pgsql
今のところPostgreSQL関連のバグはDBAをPostgreSQL
モジュールが同時使えないバグを除けば、既知のバグは
ありません。
バグレポートは大歓迎します。
Naofumi Kondoh wrote:
> ソフト工房の近藤です。
>
> Yasuo Ohgaki wrote:
>
>>大垣です。
>
>
> ---- snip ----
>
> pg_convert() について。
>
> (1) データーエラーの場合は、どのような形でエラーを返す
> のでしょうか?。
単純にFALSEを返します。
>
> (2) 引数にDB列(column)がありませんが、列の指定はどの
> ようにするのでしょうか。
連想配列のキーを列名に使っています。
pg_convert(とその他の関数も)は連想配列のみ受け付けます。
ハッシュキーが数値の場合はエラーになります。
# PostgreSQLは列名に日本語をサポートしていたので
# 困る方もいるかもしれません。PHPが日本語をサポート
# すれば良い話ですが、、、
>
> (3) 日付型の場合、SET DATESTYLE 指定のスタイルに対応
> した日付チェックになると思いますが、ISO 指定の
> 場合、YYYY/MM/DD はエラーとするのか、YYYY-MM-DD
> にconvertするのか。ISO 指定で、xx/yy/YYYY 形式
> の場合、エラーとするか、US とみなすか、それとも
> European とみなすかなど、難しいですね。
先ほどCVSのHEADブランチにコミットしたのですが、個人的に必要
なISOのみサポートしています。(これも完全ではありませんが、、)
# PHP 4.3.0がリリースされる頃には、もう少し賢くチェック
# する用にしたいのですが、、、
そのうち、PostgreSQLのソースから実際に使っているチェック
と同じ動作をするように変更します。
>
> 個人的には自動変換なしで、少しでも形式が違えば
> エラーというのが好きです。
了解しました。私もそう思います。
>
> 必要なら、2/1 と入力したら 2002-02-01 00:00:00
> などに変換するルーチンを自分で書く方が融通がきい
> てわかりやすい。
私もそう思います。
> -------
>
> この ML で言ってもしかたないことですが、PostgreSQLも
> エラー内容がわかるようなまともな SQLSTATUS/SQLCODE を
> 返すようになってほしいものです。
PHP4.2.0からpg_result_status()がサポートされています。
この関数を使う事により、PHPではほぼ無理であったトランザク
ション処理の回復ができるようになります。
(pg_last_notice()は半分しか実装されていませでした。
この関数も仕様通りに動作するように先日コミットしたので
PHP4.3.0から仕様通りに動作します。ちなみに、中途半端
にコミットしたのは私ではありません。念の為。)
> 話はかわりますが、個人的には、単一の SQL 文しか実行
> できない pg_exec_xxx が欲しいです。それで、初心者や
> エンドユーザーには、複数 SQL文が実行可能な pg_exec
> を使用禁止にして、単一 SQL 文のみ実行可能な関数を
> 使わせたい。
基本的にlibpqのPQexecにそのまま文字列を送信している
だけなので、この機能をサポートするには送信する前にパー
スする必要があります、、、、
PS:CVS版のPostgreSQLモジュールは新しい関数/機能を
除けばリリース版とほぼ同じ安定性です。4.1.0以降のPHP
であれば、モジュールソースを置き換えるだけで新しい関数
機能は使えます。
--
Yasuo Ohgaki
__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo! http://bb.yahoo.co.jp/