人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PostgreSQLについて質問です。

以下のようなデータベースに対し

CREATE TABLE ad_code (
ad_code_id serial NOT NULL,
ad_code_name text,
note text,
created int4 NOT NULL,
created_date timestamp NOT NULL DEFAULT now()
);

List of relations
Schema | Name | Type | Owner
--------+---------------------------------+----------+----------
public | ad_code | table | postgres
public | ad_code_ad_code_id_seq | sequence | postgres


PHPで以下のような処理をしても

$query = "INSERT INTO ad_code ( ad_code_id, ad_code_name, note, created, created_date )
VALUES ( nextval('ad_code_ad_code_id_seq'), 'テスト', 'テストです', 1204724668, '2008/03/05 22:44:28' );";
pg_exec( $db_link, $query );
$result = pg_get_result( $db_link );

$query = "select currval('ad_code_ad_code_id_seq');";
$result = pg_get_result( $db_link );
$row = @pg_fetch_row($result);
if($result) pg_free_result($result);
var_dump($row);


レコードは作製されず、ダンプした値もNULLが返ってきます。
エラーは表示されません。

レコードを追加し、追加したレコードのIDを取得したいのですが、うまくいきません。

MySQLは慣れているのですが、PostgreSQLでの開発は初めてで戸惑っています。

PHP Version 4.3.10
PostgreSQL(libpq) Version 7.2.1



●質問者: shotets
●カテゴリ:ウェブ制作
✍キーワード:28 libpq MySQL name NOTE
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● b-wind
●60ポイント ベストアンサー

PHP: pg_query - Manual

とりあえず、

レコードは作製されず

という時点でクエリにエラーが出てるんじゃあるまいか。


$result = pg_query($db_link, $query);
if (!$result) {
 die pg_last_error($db_link);
}

でエラーが起こっていないか判定してみるべし。

あと、

$result = pg_get_result( $db_link );

はこの場合要らないな。

◎質問者からの返答

できました!

ありがとうございます!

pg_exec() を pg_query() に変更したら

問題なくレコード追加できました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ