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