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