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

la cinquieme lacinquieme @ hotmail.com
2006年 7月 4日 (火) 01:59:46 JST


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

>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 メーリングリストの案内