[PHP-users 15284]pg_atoiでエラーが出る

ohara takaaki ohr @ yoursys.org
2003年 5月 15日 (木) 00:28:01 JST


オハラといいます.(SQL&phpビギナー)

pgsql-jp @ ml.postgresql.jp にも投稿しましたが
php との関係もあるかと思い,こちらにも投稿させて
ください.
php からテキスト型にテキストを INSERT するクエリを
実行すると pg_atoi のエラーが出ます.
(psql で直接クエリ実行ではエラーは出ません!)

=== 環境
Linux version 2.4.18-17.7.xcustom
Red Hat Linux 7.3 2.96-112
PostgreSQL 7.2.2
php4.2.4-dev
apache1.3.23
===

で,以下のような 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';
などとすると同じエラーが出ます.

===

pg_atoi はアスキー文字を Integer に変換する(?)ぐらい
にしか理解していません.
どのようなことでも構いませんのでアドバイスいただけたら
幸いです.


-- 
ohara takaaki <ohr @ yoursys.org>



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