[PHP-users 29592] Re: PostgreSQLでinsert不能(PEAR DB使用)

GotouYutaka yu.gotou @ gtec-ni.com
2006年 7月 4日 (火) 10:53:59 JST


echo mb_detect_encoding($_POST['hoge']) ;
で、受け取った変数のエンコーディングがわかるでしょう。
****************************************
    GotouYu


----- Original Message ----- 
From: "la cinquieme" <lacinquieme @ hotmail.com>
To: <php-users @ php.gr.jp>
Sent: Tuesday, July 04, 2006 1:59 AM
Subject: [PHP-users 29587] Re: PostgreSQLでinsert不能(PEAR DB使用)


お世話になっております、宮川です。

>http://pear.php.net/manual/ja/package.database.db.db-error.php
>によると、エラーオブジェクトから取得できる情報は getMessage() 以外にも
>いくつかあるようです。それらを使用してみると、何かヒントが得られるかも
>しれません。

こちらのサイトを参考に、
$Query = $db->query("INSERT INTO members (id,valid,name,regist) VALUES ('北
海道
001',0,'
利用者名','20060702')");
if(DB::isError($Query)){
  echo '標準のメッセージ: ' . $result->getMessage() . "\n";
  echo '標準のコード: ' . $result->getCode() . "\n";
  echo 'DBMS 固有のユーザメッセージ: ' . $result->getUserInfo() . "\n";
  echo 'DBMS 固有のデバッグメッセージ: ' . $result->getDebugInfo() . "\n";
}

としましたところ、

標準のメッセージ: DB Error: unknown error
標準のコード: -1
DBMS 固有のユーザメッセージ: INSERT INTO members VALUES (
'北海道001',
0,
'利用者名',
'20060702'
) [nativecode=ERROR:  invalid byte sequence for encoding "EUC_JP": 0x8386]
DBMS 固有のデバッグメッセージ: INSERT INTO members VALUES (
'北海道001',
0,
'利用者名',
'20060702'
) [nativecode=ERROR:  invalid byte sequence for encoding "EUC_JP": 0x8386]

と表示されました。
どうも文字コードがおかしいようです。
PostgresはEUCなのですが、PHPはWindowsで動作させているのでSJISになるのでしょ
うか?
実行中のphpの文字コードはどう調べればよいのでしょうか?


_______________________________________________
PHP-users mailing list  PHP-users @ php.gr.jp
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3 



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