DB/DataObject.php | MySQL Timestamps not working as expected??
| From: | Mike Zornek | Date: | Mon, 19 Apr 2004 17:02:07 +0000 |
| Subject: | DB/DataObject.php | MySQL Timestamps not working as expected?? | ||
| Groups: | php.pear.general | ||
| Request: | Send a blank email to pear-general+get-11953@lists.php.net to get a copy of this message | ||
So I have a DO object of my own called DataObjects_Member
<?php
/**
* Table Definition for member
*/
require_once 'DB/DataObject.php';
class DataObjects_Member extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
var $__table = 'member'; // table name
var $member_id; // int(5) not_null primary_key
unsigned auto_increment
var $member_first_name; // string(20)
var $member_middle_name; // string(20)
var $member_last_name; // string(50)
var $member_suffix; // string(10)
var $member_gender; // string(1) not_null enum
var $member_birth_date; // date(10)
var $member_block_fap; // int(1) not_null unsigned
var $member_description; // blob(65535) blob
var $member_company; // string(100)
var $member_mailing_address_id; // int(5) unsigned
var $member_mailing_email_id; // int(5) unsigned
var $member_modified_timestamp; // timestamp(14) not_null
unsigned zerofill timestamp
var $member_created_timestamp; // timestamp(14) not_null
unsigned zerofill
/* ZE2 compatibility trick*/
function __clone() { return $this;}
/* Static get */
function staticGet($k,$v=NULL) { return
DB_DataObject::staticGet('DataObjects_Member',$k,$v); }
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
}
?>
Right now I'm using the following code snippet to create a new member and
it's working great:
$member->setMember_first_name("Michael");
$member->setMember_middle_name("Donald");
$member->setMember_last_name("Zornek");
$member->setMember_suffix("");
$member->setMember_gender("M");
$member->setMember_birth_date("1979-07-11");
$member->setMember_description("Michael Zornek is a great guy!");
$member->setMember_company("");
$member->insert();
However, if you look at my DataObjects_Member class you may notice how I
have two object properties called $member_modified_timestamp and
$member_created_timestamp. The first one (modified) is handled automatically
by MySQL but whenever I create a new record I'm suppose to set
$member_created_timestamp to the MySQL NOW() equivalent. Using the
documentation and a bit and some experimentation I can't seem to do it.
I then thought maybe I could use PHP to set it but using code like this:
$member->setMember_created_timestamp(date("YmdHis"));
-or-
$member->setMember_created_timestamp("20040704091734");
-or-
$current_time = date("YmdHis");
$member->setMember_created_timestamp($current_time);
But watching the DataObject debug (level 3) results go by it doesn't even
look like it's trying to put the member_created_timestamp into the INSERT
statement. Little help. Thanks!
~ Mike
-----
Mike Zornek
Web Designer, Media Developer, Programmer and Geek
Personal site: <http://MikeZornek.com>
New Project: <http://WebDevWiki.com>