[pgsql-jp: 30441] Re: PHP4.1.2 + PostgreSQL7.0.3(varchar) が意図しない事になる

風船太郎 FuusenTarou @ hotmail.com
2003年 7月 13日 (日) 00:04:39 JST


Mashiki様
RESありがとうございます。

> >PHPファイルを「SJIS」にしてみたところ
> >正常に登録できました???が
> >「EUC-JP」で統一しているのに出来ないのがおかしいと・・・。
>
> psqlではうまくいくということで完全にphp側の問題のようですね。
>
> 再現実行できる短いソースコードとphpiniのmb_string関連の設定を
> アップすれば誰かわかる人がいるかと思います。

下記に使っているコードと設定です。

-----------
postgreSQL側
-----------
create table aaa(
    no         varchar(10)    not null,
    name     varchar(32),
);

test=# \l
        List of databases
 Database  |  Owner   | Encoding
--------------------------------
 template1 | postgres | SQL_ASCII
 test        | postgres | EUC_JP

-----------
   php.ini
-----------
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.detect_order = auto
mbstring.substitute_character = none

-----------
 test.php (EUCで保存)
-----------
/* DBに接続 */
$con = pg_connect("host=localhost port=5432 dbname=test");
$name = "ああああああああああああああああ";
/* SQL文 */
$sql = "INSERT INTO password values('a','" . $name . "')";
$name = mb_convert_encoding($name,"EUC-JP");   //← ここを "SJIS" にする
とうまくいきます
$rtn = pg_exec($con, $sql);
if(!$rtn){
  print ("追加できませんでした。");
} else {
  print ("正常に追加できました。");
}
/* DBの接続を切る */
pg_Close($con);


> あとconfigureの「--enable-locale」は過去いろいろな問題を
> 起こしています。ついでに検索をかけてみてください。

検索速度が遅くなると書いてありますね。

よろしくお願いします。



pgsql-jp メーリングリストの案内