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

紅おやじ s_kure2002 @ ybb.ne.jp
2004年 2月 11日 (水) 18:00:26 JST


 紅林です。

>私は(そしてここに参加しているいづれの人も)貴方の先生ではないので
>    それくらい調べましょう.しかも返答してくださっているメールの中に問
>    題点の指摘と修正方法が記載されています.
>
上鍵さん、そしてメールを書いてくれたみなさん
私の説明不足で不愉快な思いをさせてしまい、すみませんでした。

>大場です。
>
>#自分がやってることの意味をちゃんと考えてください
>
>In message "[PHP-users 20330] Re: INSERTが実行されない",
>紅おやじ wrote,
>
>  
>
>>「print($sql);とでも入れて、sql文を確認されてはいかがでしょうか?」
>>これは
>>$sql = "INSERT INTO zairyou_kubun .....";
>>この行を有効にするとすべてが白くなるので
>>

これは、この行を有効にするとphpのスクリプト自体が止まってしまう?と言うこ
とです。
無効にすると、pg_queryは反応したと判断しました。
今現在WEBにエラーが出る状態で再現すると

Parse error*: parse error, expecting `T_STRING' or `T_VARIABLE' or
`T_NUM_STRING' in */home/sannji/public_html/php1/nyuuryoku2.php* on line *16

上記のエラーが出るだけでprint文はもちろん現れません。
その時はエラーも表示されなかったので白くなるだけでした。

print($sql);を意味の有る文にするには$sql = "INSERT INTO.....";を
有効にしなくてはならない でもそうするとスクリプト自体が止まってしまう。

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

$sql = "INSERT INTO zairyou_kubun .....";
この文のどこが悪いのか
print("INSERT");
print("INSERT INTO");
print("INSERT INTO zairyou");
とゆう具合に調べてみました。
その結果
print("INSERT INTO zairyou_kubun (zai_kubu_id, name_zai_kubu) VALUES");
ここまではスクリプトは動いてくれましたが、次の
print("INSERT INTO zairyou_kubun (zai_kubu_id, name_zai_kubu) VALUES ($_POST['zaikubuid'],");
でスクリプトは止まりました。

これは、意味の無い実験だったのかも知れませんが?

いずれにせよここで
($_POST['zaikubuid'],'$_POST['namezaikubu']')
がスクリプトを止めている原因ではないかと判断しました。
値の送り側とも考えられると思ったので

「会社からインターネット越しで試したところ」
の文を加えておきました。


>MLの参加者が確認したいのは$sqlに変数がどう入って
>最終的にどのようなSQL文が生成されているかということです。
>
私もそれを確認したかったのですが、これは私の環境だけの話でしょうか?

var_dump 関数の使いかたはわかりました。今回は

print($_POST['zaikubuid']); //確認用
print($_POST['namezaikubu']); //確認用

この文を入れて同じような結果を狙ったのですが
値そのものだけでなく、もっといろんな事がわかるようですね
次につまずいたとき利用させてもらいます。


このメーリングリストのみなさんのレスの速さと、レスの数の多さには驚きました。
それだけPHPに関心が有る人が多いと言うことでしょうか?










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