[PHP-users 18297]データーベースへのNull値の挿入

Kazuhiro Abe kazuabe @ alles.or.jp
2003年 10月 7日 (火) 16:28:29 JST


KAZ です。
以前は、大変お世話になりました。
今回も是非、ご教授をお願い致します。

今回は、Webフォームから、入力されたデーターを
DB(Postgres)へインサートしたいのですが、

$tempの値を省略すると、
pg_atoi: error in " ": can't parse " " in.......
と云うエラーが出てしまいます。
(入力すれば、OKなんですが....)

$tempのデーターが入力されていなければ、NULLとしたいのですが、
いろいろと、探させていただいたのですが、上手くゆきません。
何卒、宜しくお願い致します。

データーをインサートする部分は、以下の様になっています。
        $date = date("Y,m,d");
        $weather = $_GET['weather'];
				$temp = $_GET['temp'];

        $connect = pg_connect("","","otenki");
        if($connect == false) {
                echo("<font color=\"red\">DB接続エラー</font>:DB と接続
できません");
                } else{
				 $sql = "insert into logdata(date,weather,temp) values (";
				 $sql .="'".$date."','".$weather."','".$temp."')";

    ............ 以下略.............
    
DBのテーブルは、以下の様に作成しました。

CREATE TABLE otenki(
tenki_id serial PRIMARY KEY,
date            date not null,
weather         int2 not null,
temp            int2 default NULL check(temp IS NULL or temp < 50 or
temp > -30)
);
    
データーベースのテーブルは、以下の様になっています。
    
  カラム  |           型           |                         修飾語
----------+------------------------+--------------------------------------------------------
 tenki_id | integer                | not null default
nextval('"otenki_tenki_id_seq"'::text)
 date     | date                   | not null
 weather  | smallint               | not null
 temp     | smallint               |
プライマリキー: logdata_pkey
制約条件のチェック:"otenki_temp" ((("temp" IS NULL) OR ("temp" < 50)) OR
("temp" > -30))

              以上 宜しくお願い致します。




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