[pgsql-jp: 34064] Re: データサイズの取得方法
Takao Kato
sirius @ jp.fujitsu.com
2004年 10月 6日 (水) 10:30:01 JST
加藤@川崎です。
一部誤解があるようなので.....
> varchar(n)の様に宣言した列に(nは、実際には整数値) 半角+全角を含む
> 文字列を登録する際、宣言時に指定した最大バイト数である「n バイト」を越える
> 文字列を登録しないように予めPHPで制限したいと考えています。
varchar(n)の n は文字数ですよね。ですから、
> PHPにマルチバイト文字関数を組込んでいない場合はPHPのstrlen()関数で
> バイト数が得られるようですが、マルチバイト文字関数を組込んでいる場合は
> strlen()関数はmb_strlen()関数にオーバーロードされるらしく、
> バイト数ではなく文字数が返るようになるため、文字列のバイト数を評価する
> 別の方法を用意する必要がありそうです。
はわざわざmb_eregで小細工しなくてもmb_strlenでも問題ないと思いますが。
それと、PHP側で手を入れたくないとのことでしたが、DB設計の話ですから、
それにあわせてconfig.phpなりの設定用ファイルを準備しておいて、それを呼
び出すか、あるいは、システムパラメータを保存しておくテーブルを準備して、
それを読みだすのが筋だと思います。
あと、PostgreSQLのどのバージョンだったか忘れましたが、バージョンによっ
ては「エラーになる」と「無理矢理容量分だけ入れる」の動きをします。最新
のバージョンは前者の動作となります。
ではでは
-------------------------------------------------------------
加藤@川崎
pgsql-jp メーリングリストの案内