[pgsql-jp: 29884] Re: pg_atoi エラーが出る

sugita @ sra.co.jp sugita @ sra.co.jp
2003年 5月 14日 (水) 21:42:10 JST


  杉田です。  

From: ohara takaaki <ohr @ yoursys.org>
Subject: [pgsql-jp: 29882] pg_atoi エラーが出る
Date: Wed, 14 May 2003 21:20:39 +0900

;;; ohr(SQL 初心者)です.
;;; 
;;; 『[pgsql-jp: 29824] text型にinsert するとpg_atoiエラーが』
;;; という題で5月8日,一度投稿させていただきました.
;;; 
;;; お一方からアドバイスいただけましたが,未解決の
;;; ままなので,もう一度題を変えて投稿しています(すみません)
;;; 
;;; === 環境
;;; Linux version 2.4.18-17.7.xcustom
;;; Red Hat Linux 7.3 2.96-112
;;; PostgreSQL 7.2.2
;;; 
;;; で,以下のような table1 を作成しました.
;;; 
;;; someflg  | smallint |
;;; code     | integer  | not null default nextval('"table1_code_seq"'::text)
;;; textcode | text     |
;;; 
;;; code は serial 型です.
;;; この table1 に以下のような SQL 文を php スクリプトで作成し
;;; pg_exec に渡します.
;;; 
;;; $textCode = 'str010101954';
;;; $sql = "INSERT INTO table1(someflg, textCode) VALUES(0,'$textCode')";
;;; pg_exec($con, $sql);
;;; 
;;; とすると,
;;; Warning: pg_exec() query failed: ERROR: pg_atoi: error in
;;; "str010101954": can't parse "str010101954" in ・
;;; 
;;; というエラー(警告)が出ます.(データは挿入されています)
;;; TEXT 型にテキストを INSERT してこの pg_atoi エラーが出るのか
;;; 解りません.
;;; 
;;; 因みに,
;;; $textCode = '11111111';
;;; などとして「文字」を省略するとエラーはでません.
;;; が,
;;; $textCode = 'aaaaaaaa';
;;; などとすると同じエラーが出ます.

  どこに、PHP か PostgreSQL、または他の何かのどこに問題があるかを切り分けた方
がよいです。 

    1) psql で直接クエリーを実行して、同様な現象が発生するか確認する。

        試してみましたけれど、発生しませんでした。でも、試してみて下さい。

    2) debug_print_query を true にして、ログを見て、実際にデータベースサーバ
       に渡っているクエリーを確認する。

  2) がどうなっているか分かればとっかかりになるのではないでしょうか?


Kenji Sugita                                      



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