[PHP-users 16863]Re: PHP/4.3.2でテーブルに書き込めない

Seto seto @ cii.gr.jp
2003年 7月 20日 (日) 13:18:51 JST


 Setoです。

>php4徹底後略 と言う本を参考にテストしていますが、どうも
>本と使用phpのバージョンの違いで書式が異なっていて、書き込めないのではと
>思っています
たぶん そういう問題では無いと思います。
SQL文自体はPHPのバージョンによる違いとは関係無いですし
PostgreSQLのバージョンでも そう変わるものでは無いです。

# pg_connect のパラメータ書式の違い
# pg_exec と pg_query 関数名の違い
# 等あるかもしれませんがこのへんは互換があるはずです。
# このへんの差異はマニュアルにて確認してください。
#
# ということで言えば
# pg_exec より pg_query を使用したほうがよさそうです。

>newdb1=>のプロンプトからはテーブルに書き込めます

このときのSQL文と
PHPスクリプトで発行しているSQL文を比べてみてはいかがでしょう。
というより比べて見ましたか?

>$result = pg_Exec($conn,$sql);
の後に
echo $sql;
とでも入れてみて確認してみてください。

>
>本では php-4.0.1pl2 ですが  PHP/4.3.2では書式が違いのでしょうか?
>$sql = "INSERT INTO tb1 (name) VALUES ('$namae')";
>$result = pg_Exec($conn,$sql);
>
>
>また  $sql = "INSERT INTO tb1 (name) VALUES ({$_GET['namae']})";
>等も試したが書き込めません
>

ここ最近の貴兄の投稿を見ていると
SQL文(特に'で括る必要性有無の判断)
変数を含む文字列の操作
この辺の理解が不足しているように思えます。
MLにて質問もいいですが 先の echo $sql; のような
デバッグ確認をしてご自分でいろいろ確認してみると
理解が深まると思います。
ほかにprint_r var_dump 等もデバッグには有用です。


*****************************************
 Junya Seto
 http://www.cii.gr.jp/~seto/php4/
*****************************************



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