• ベストアンサー

php postgres Insert と updateができない

こんにちは、 現在、php5とpostgresql8でプログラムを行っています。 それで、 $sql = "INSERT INTO t_hoge (name) VALUES('hogesan')"; pg_exec($sql) と、テーブルにデータを入れているんですが、 エラーはでないのに何故かデータがテーブルにインサートできません。 また、アップデートで編集もできません。 しかし、SELECTで既に入力されているデータを読んでprint等で表示させると普通にデータは取れています。 また、telnet等で直接postgresに hoge=> INSERT INTO t_hoge (name) VALUES('hogesan'); と入力するとデータが挿入できます。 なにが問題なんでしょうか。 権限が問題なのでしょうか。 ちなみにテーブル作成するときは CREATE TABLE t_hoge ( name TEXT PRIMARY KEY, info TEXT ); としています。 なにか思い当たる節があれば助言していただきたいのですが。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

何かしらのエラーが出てるんじゃないでしょうか。 pg_execの直前で、 error_reporting(E_ALL); ini_set("display_errors", 1); pg_exec($sql); こんな風にしてみてもエラーが表示されないでしょうか? これでエラーが出ないのであれば、 echo $sql; として、SQL文が正しいか見てみた方が良いと思います。

GomoBuco
質問者

補足

上記のことを試しましたが、エラーはでてないようです。 まったく記述的に問題ないのに、権限も問題ないのに、なぜかデータが書き変わらない・・・。 なにか、正常な動作で無効にする機能って・・・。 -------------------------------------- で、 すいません。 自己解決しました(--;) なにも考えずに先人が作ったものを使用していたのですが、 一番最後のほうに・・・ pg_exec('rollback;'); Σ(´Д`;)!? noooooooo お騒がせしました。 というか、 自己解決した際などに自分の質問のしたにまとめみたいな形で知識として残せればいいのに人の返信にしか返信できないって不便ですね。

その他の回答 (1)

  • yosakun
  • ベストアンサー率30% (3/10)
回答No.2

ちゃんとデータベースに接続してます? pg_connect あとpg_execは使わないで pg_querryに変えた方がいいですよ。

GomoBuco
質問者

補足

select でデータは取れるので connectはできているようです。 軽く調べただけでは、 pg_execとpg_querryの違いがいまいち分かりませんでした。 まぁ、クエリーだけ実行するか、sql系の処理ならなんでも実行するかの違いでしょうか?

関連するQ&A