• 締切済み

php経由でpostgresqlにdate型カラムにNULLを入れるには

psqlのコマンドからは INSERT INTO table VALUES (NULL); でdate型のカラムにNULLを入れられるようですが、 PHPで以下のようにしてもその下にあるエラーが出ます。 if(empty($date)){ $date = 'NULL'; エラーを回避してdate型カラムにNULLをいれる方法を 捜しています。 Warning: PostgreSQL query failed: ERROR: Bad date external representation 'NULL' PHP4.1 POSTGRES7.0 の環境です。

noname#8847
noname#8847
  • PHP
  • 回答数2
  • ありがとう数3

みんなの回答

  • sou_sk
  • ベストアンサー率71% (15/21)
回答No.2

> 。自分の質問のどこが足りないのかいまいち理解できていませんが 例えば SQL 文が載っていません。必要な箇所が省略されていて判断出来ない事があるという事です。 まず仮のパラメーターでも良いので SQL 文を作り、psql などのクライアントから正しく動作するかどうか見れば Pgsql に問題があるのか PHP に問題があるのかの区分が付くでしょう。そこから判断すれば良いのでは。 ところでちゃんと $query = "INSERT INTO.. のように SQL を組んでいますか…

  • sou_sk
  • ベストアンサー率71% (15/21)
回答No.1

文字列の NULL になってませんか。DB レベルで問題がないなら SQL を組めば PHP が問題を生む事は滅多に無いハズです。 まず SQL レベルでデバッグしてみてはいかがでしょうか。 ところで提示されたコードも環境も記述不足です。 技術系メーリングリストで質問するときのパターン・ランゲージ http://www.hyuki.com/writing/techask.html 等を参考にするなり、普段から ML 等に目を通して模範的な質問に目を慣らしておいた方が良いと思います。

noname#8847
質問者

お礼

お礼が遅くなって大変失礼しました。ご教示いただいたページを参考にさせていただきました。自分の質問のどこが足りないのかいまいち理解できていませんが、時間を掛けて理解するつもりです。

関連するQ&A

  • phpでのPostgresqlの配列型カラムへのinsert文の書き方

    postgresql 7.0.2,スクリプト言語php4.12で請求書作成のデータベースを作っています。 データベースのカラムが配列型のものが複数あり、フォームから受け取った配列の値を インサートする方法がわからなくて悩んでいます。 for($i=0;$i< count(@$_POST["sum"]);$i++ ) { $summary[] = $_POST["summary"][$i]; $num[] = $_POST["num"][$i]; $tanka[] = $_POST["tanka"][$i]; sql = "insert into seikyu (summary,num,tanka) values('{$summary}','{$num}','{$tanka}')"; だと Warning: PostgreSQL query failed: ERROR: array_in: Need to specify dimension とエラーになります。 どういうSQL文を書けばよいのでしょうか?

    • 締切済み
    • PHP
  • PostgreSQLのpsqlでユーザの扱いがうまくいかない

    こんにちは ただいま、PostgreSQL7.2.3をインストール(Redhat7.3)し、これからpsqlを使い、SQL操作をしようとしていたところですが、psqlと入力すると "psql: FATAL 1: Database "postgres" does not exist in the system catalog."となります。 PostgreSQLのユーザは "postgres","nobody"です。 現在、postgresからpostmaster -Sで起動しています. 下記に端末で行った作業内容をコピーしてみました。 今回インストールの参考にした書籍は"PHPxPostgreSQLで作る最強Webシステム」石井達夫著です。この本の手順に従ったつもりですが、うまくいきません。 [postgres@www root]$ postmaster -S [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ select dtname from php bash: syntax error near unexpected token `from' [postgres@www root]$ select dtname from template0 bash: syntax error near unexpected token `from' [postgres@www root]$ [postgres@www root]$ psql select dtname from php psql: warning: extra option from ignored psql: warning: extra option php ignored psql: FATAL 1: Database "select" does not exist in the system catalog. [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ psql psql: FATAL 1: Database "postgres" does not exist in the system catalog.

  • PHPでPostgreSQLに接続できない。

    PHPでPostgreSQLに接続しようとすると、 エラーメッセージが出て接続できません。 コマンドプロンプトからの接続は可能です。 環境:PHP5、Apache2.2、PostgreSQL8.24 全て同じサーバにインストールしています。 ********************************************* コマンドプロンプト ********************************************* >psql -U postgres -h localhost test >Password for user postgres::testpass >Type: \copyright for distribution terms >\h for help with SQL commands >\? for help with psql commands >\g or terminate with semicolon to execute query >\q to quit > > >test=# ********************************************* ↑問題なく接続できます。 ********************************************* ********************************************* PHP ********************************************* <?php $con = pg_connect("host=localhost dbname=test user=postgres password=testpass"); ?> ********************************************* エラーメッセージ 12行目は「pg_connect」のところになります。 Fatal error: Call to undefined function pg_connect() in C:\Program Files\Apache…test.php on line 12 ********************************************* php.ini ファイルはextension=php_pgsql.dll をアンコメントしてあります。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHP4からPostgreSQL7.3に接続したいのですが・・・

    次のページのサンプルを入れてみるところ(IDとPASSは変更していますが。) http://www.hizlab.net/app/view/install/test_php_pgsql.php?prev=install.html%23test 次のようなエラーが発生します。 ターミナルからのtemplate1へのログインではうまく接続できるのですが、この場合、どこがおかしいのでしょうか? --------------------- error ------------------------------ Welcome PHP + PostgreSQL World!! Warning: pg_connect() unable to connect to PostgreSQL server: FATAL: IDENT authentication failed for user "postgres" in /home/user/public_html/test.php on line 24 I can not connect to DataBase(template1) ----------------------------------------------------------- よろしくお願いします。

  • type date にnullをinsert

    phpとpostgressqlで開発をしております。 さて、 date列に条件によって日付を入れたり、入れなかったりします。 日付を入れる場合はOKですが、 日付を入れない場合は、nullとすると、下記のエラーが出ます。 Query failed: ERROR: invalid input syntax for type date: "" null以外に''も試しましたが、エラーになります。 何か対処方法を教えてください。 よろしくお願いします。

  • PostgreSQLの「not null」制約の追加

    こんにちは。いつもお世話になります。 PostgreSQLのversion7.2.8で、「not null」制約の追加、削除の方法をおたずねします。よろしくお願いします。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET NOT NULL; で試したところ、syntaxエラー(構文エラー)で失敗。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL; で試してみても、同じくsyntaxエラーです。 version7.2.8が原因でしょうか? また、version7.2.8でも「not null」制約の追加、削除が できる他の方法はありますでしょうか? テーブルを作り直さずに、 既存のテーブルのカラムへの制約の追加、削除をしようとしています。 よろしくお願いします。

  • PHPからPostgreSQLが起動できないトラブルについて

    レンタルサーバを利用してPHPからPostgreSQLを起動したいのですが。(当然,PHP+PostgreSQLが利用可能なレンタルサーバです)。 次に示すようなエラーメッセージがブラウザに表示されてしまいます。 Warning: Unable to connect to PostgresSQL server: connectDBStart() -- connect() failed: Connection refused Is the postmaster running (with -i) at 'localhost' and accepting connections on TCP/IP port 5432? in テーブルへのアクセス権限は指示どおりに行っています。 何か,良い情報がありましたら,よろしくお願いいたします。

  • postgresqlとmysqlの違い

    こんにちは。 OSはRedhatLinux7.1を使っています。 Apache_1.3.26 php-4.2.1 PostgreSQL-7.2.1 mysql-3.23.52 を使ってWebアプリケーションを作ろうとしています。 Apache+php+PostgreSQLで、 SJISで書いたphpプログラム(htmlのページの表示もSJISに指定)を使って表示されたページからPostgreSQLにデータを登録しようとするとエラーになります。 Warning: pg_exec() query failed: ERROR: Invalid EUC_JP character sequence found (0x8971) となります。 同じようにApache+php+mysqlでやってみたら登録できます。 PostgreSQLはSJISでデータを登録できないのでしょうか? どこをどのようにすればいいのかわかりません。 初歩的で申し訳ありませんがアドバイスお願いします。

  • COPY時のtimestamp型について

    どなたかご存知の方、ご教示下さい! CSVファイルよりCOPYコマンドでテーブルにレコードをインポートしようとしているのですが、 その際、timestamp型についてNULLだった場合には\Nを記述する様にしました。 ところが下記の様なテーブルの場合に、COPYが上手くいきません。 <テーブル TEST> AAA varchar(10) BBB timestamp CCC varchar(10) DDD timestamp <CSVファイル TEST.csv> てすと,\N,てすと,\N <実行したコマンド> COPY TEST from 'TEST.csv' using delimiters ','; <psqlのエラーメッセージ> ERROR: copy: line 1, Bad timestamp external representation '\N カラムBBBは問題ないのですが、 カラムDDD(最後尾のカラム)がNULLの場合にエラーになってしまいます。 何か特別な記述が必要なのでしょうか??? 情報お持ちの方いらっしゃいましたらどうぞよろしくお願い致します。

  • PHPのPostgresql インサート処理

    PHPである携帯用アプリを作成しています。 ユーザ登録処理画面でパソコン上からDBにインサートすると成功するのに携帯からだとDBエラーになります。 インサートする項目は10項目あります。 エラー文は以下です。 Warning: pg_exec(): Query failed: ERROR: parser: parse error at ornear "," at character27 . in /~path名(セキュリティ上書きません) 他の処理でインサート項目が1つだとインサートが成功します。 原因がどうしてもわかりません。 Postgresqlの規約があるのでしょうか?それとも携帯での規約でしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう