[PHP-users 65] 生年月日が未入力の場合の処理について

Osamu Shigematsu php-users@php.gr.jp
Fri, 15 Jun 2001 10:38:56 +0900


重松と申します。

VineLinux 2.0CR (Intel), PHP 3.0.15,PHPLIB 7.2c, Apache 1.3.12, PostgreSQL
7.0.2 で開発を行っています。

生年月日が未入力の場合の処理についてうまくいかないことがあります。
PHPLIB の DB_Sql クラスを継承した my_db クラスがあるとして、

$db = new my_db;
$sql = "select birthday from person_table"; // birthday は date 型
if(!$db->query($sql)) die("database error");
while($db->next_record()){
    $birthday = $db->f("birthday");
    if($birthday)
        print date("Y/m/d",$birthday);
    else
        print "未入力";
    print "<br />";
}

という処理ですと、NULL と 1970/01/01 の区別がつきません。
どのようにすれば区別できるのでしょうか?

また、日付のデータを NULL として insert するにはどうすればよいのでしょうか。

今のところデータベースには PostgreSQL を用いており、変更する予定はないのです
が、なるべくどのデータベースでも動作可能な方法が望ましいので、汎用性の高い方
法をご教授いただければ幸いです。

--
Osamu Shigematsu