[PHP-users 21551]Re: time型にpg_insertでINSERTするとエラー

m-saitoh @ yamatosokki.co.jp m-saitoh @ yamatosokki.co.jp
2004年 5月 7日 (金) 19:27:52 JST


斉藤です。

> php-4.3.6/ext/pgsql/pgsql.c で確認すると、PostgreSQL の time 型が
> 指定されている場合、以下の正規表現によるチェックが行われますが、
> 正規表現部分の閉じ括弧が一つ多く、括弧の対応がおかしくなっているようです。
> 
> php-4.3.6/ext/pgsql/pgsql.c
> 
> 3825: if (php_pgsql_convert_match(Z_STRVAL_PP(val), "^(([0-9]{1,2}:[0-9]{1,2}){1}(:[0-9]{1,2}){0,1})){0,1}$", 1 TSRMLS_CC) == FAILURE) {
>                                                                                                     ^

ご指摘いただいた括弧を1つとって再度コンパイルを行ったところ、
エラーが出なくなりました。

> 手元で使用している Gentoo Linux の glibc-2.3.2 の環境で、簡単な C のソースを
> 書いて確認してみたのですが、この括弧の対応がおかしくても正規表現の
> コンパイルエラーにはなりませんでしたので、この部分を修正することで問題が
> 解決するかどうかは分かりません。

私の環境もglibc-2.3.2 なのですが、PHP自体は別の正規表現のエンジンを
使っているのでしょうか?
'--with-regex=system'というのは、systemのエンジンを使うということですか?
明らかに正規表現が間違っているのに同じような現象が出る方は居ないのかな


なにはともあれ、本当にありがとうございました。
とても助かりましたし、勉強にもなりました。
今後ともよろしくお願いいたします。

-=-=-=-=-=-=-=-=-=-=-=-=-=-
m-saitoh @ yamatosokki.co.jp



PHP-users メーリングリストの案内