-1

PostgreSQL データベースでクエリを実行する PHP コードに取り組んでいます。

$insert = pg_query($pg_conn, 
"INSERT INTO kullanicilar(id, u_name, u_firstname, u_lastname, register_date, gold, exp, play_times, level)
VALUES($k_id, '$u_name', '$u_firstname', '$u_lastname', 'NOW()', 0, 0, 0, 1);"
);

if ($insert) {
    echo 'Insert succeeded.';
} else {
    echo 'An error occurs when inserting';
}

毎回メッセージを挿入するとエラーが発生します。コードの何が問題になっていますか?

-詳細を編集する)

Heroku Postgres を使用しています。私の変数の定義は次のとおりです。

$k_id = intval($basic['id']); //int
$u_name = $basic['name']; //string
$u_firstname = $basic['first_name']; //string
$u_lastname = $basic['last_name']; //string

これが私のherokuログの一部です:

PHP Warning:  pg_pconnect(): Unable to connect to Postg
reSQL server: could not connect to server: Connection refused\n\tIs the server r
unning on host "-----.amazonaws.com" and accepting\n\tTCP/
IP connections on port 5432? in /app/www/index.php on line 91, referer: http://a
pps.facebook.com/---/

PHP Warning:  pg_last_error() expects parameter 1 to be
resource, boolean given in /app/www/index.php on line 119, referer: http://apps
.facebook.com/---/

PHP Warning:  pg_num_rows() expects parameter 1 to be r
esource, null given in /app/www/index.php on line 106, referer: http://apps.face
book.com/---/

PHP Warning:  pg_query() expects parameter 1 to be reso
urce, boolean given in /app/www/index.php on line 107, referer: http://apps.face
book.com/---/

PHP Warning:  pg_last_error(): No PostgreSQL link opene
d yet in /app/www/index.php on line 111, referer: http://apps.facebook.com/---/

PHP Warning:  pg_query() expects parameter 1 to be reso
urce, boolean given in /app/www/index.php on line 98, referer: http://apps.faceb
ook.com/---/
4

1 に答える 1

1

が(タイムゾーン付き) でregister_dateあると想定される場合は、(一重引用符付き、文字列リテラル)ではなく (一重引用符なし、関数呼び出し) である必要があります。timestampnow()'now()'

Postgres は、より詳細なエラー メッセージを発行します。DB ログを確認します。

pgAdmin単なるGUIです。クライアント上に存在する場合、サーバー上のログ ファイルにまったくアクセスできない可能性があります。同じマシン上にある場合は、適切に構成する必要があります。

中途半端に適切に構成された Postgres サーバーごとに、ログ ファイルが書き込まれます。postgresql.confここで説明されている設定を参照して、場所を見つけたり構成したりしてください。

于 2013-01-08T06:51:39.400 に答える