プロが教える店舗&オフィスのセキュリティ対策術

教えてください。
現在、ある人の書いたPHPを解析しています。
その中で、postgreSQLを使ってデータをアップデートしている以下の記述があります。

begin;update goods_belong_cat set belong_cat_1='10002', belong_cat_2='10025', belong_cat_3='10086', belong_cat_4='' ,goods_id='1000402' or goods_id='1000393' or goods_id='1000412' or goods_id='1000232' or goods_id='1000241' or goods_id='1000240' or goods_id='1000840' ;commit work;
(一行です。)

この記述を実行すると、以下のようなエラーが出ます。
BEGIN
ERROR: boolean型への入力構文が無効です: "1000402"

1: ..., belong_cat_3='10086', belong_cat_4='' ,goods_id='1000402' ...
       ^
ROLLBACK

どこに誤りがあるのか分かりません。
どなたかご教示願えませんでしょうか。
Postgreのバージョンは、psql (PostgreSQL) 8.4.13です。
古いバージョンのPostgreでは正常に動いていました。

A 回答 (1件)

 ……belong_cat_3='10086', belong_cat_4='' ,goods_id='1000402' or ……


の部分って
 ……belong_cat_3='10086', belong_cat_4='' where goods_id='1000402' or ……
だったりしませんか?
    • good
    • 0
この回答へのお礼

ありがとうございます!
ご指摘のとおりに直しましたら、正常に動きました。
古いバージョンではこれでも動いていたので不思議です。

お礼日時:2014/02/27 15:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!