[PHP-users 20334]Re: INSERTが実行されない

Masashi Ohba ohba @ imr.tohoku.ac.jp
2004年 2月 9日 (月) 18:20:12 JST


大場です。

#自分がやってることの意味をちゃんと考えてください

In message "[PHP-users 20330] Re: INSERTが実行されない",
紅おやじ wrote,

>「print($sql);とでも入れて、sql文を確認されてはいかがでしょうか?」
>これは
>$sql = "INSERT INTO zairyou_kubun .....";
>この行を有効にするとすべてが白くなるので、その後に
>print($sql);
>と入れても何も表示されません。

だったら、まずは

>$result = pg_query($con, $sql); //insertを実行
>if ($result == false) {
>printf("SQLの実行に失敗しました。理由:". pg_last_error($this->con));
>exit;
>}

をコメントアウトして、生成しているSQL文が文法的に正しいのか
作成したかったものなのかを、print($sql);で確認したらどうですか?
当然、登録されませんけど。

>そこで$sql = "INSERT INTO zairyou_kubun .....";をコメントアウトして
> print("INSERT INTO zairyou_kubun (zai_kubu_id, name_zai_kubu) VALUES"); 
>これを加えると

コードはこうなんだから

>if ($result == false) {
>printf("SQLの実行に失敗しました。理由:". pg_last_error($this->con));
>exit;

pg_query()に食わせるSQL分が無かったら
エラーなのは当然では?

で、あなたが手作業でタイプした

>print("INSERT INTO zairyou_kubun (zai_kubu_id, name_zai_kubu) VALUES");

というのはprintなんだから「出力されて当然」なのですが

#エラーと一緒に繋がって出てるでしょ?

pg_query()に食わせることも無い、print()目的の
手打ちSQL文を見ることに何か意味がありますが?

MLの参加者が確認したいのは$sqlに変数がどう入って
最終的にどのようなSQL文が生成されているかということです。

$sqlがちゃんと生成されてないだけなのでは?
""や''の使い方がおかしいとか変数の取得がおかしいとか
変なSQL文を作っている可能性はいくらでもあります。

------------------------------------------------
東北大学 金属材料研究所
大場正志(Masashi Ohba)
E-mail: ohba @ imr.tohoku.ac.jp



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