Re: My DB_DataObject subclasses are always returning 1 on insert()
| From: | Mike Zornek | Date: | Wed, 19 May 2004 14:31:31 +0000 |
| Subject: | Re: My DB_DataObject subclasses are always returning 1 on insert() | ||
| References: | 1 | Groups: | php.pear.general |
| Request: | Send a blank email to pear-general+get-12609@lists.php.net to get a copy of this message | ||
On 5/19/04 1:59 AM, "Alan Knowles" <alan@akbkhome.com> wrote:
> try turning debugging on.. -
> DB_DataObject::debugLevel(1);
>
> it could be that either
> a) mysql_last_insertid (or what ever it was) - is returning the wrong number
> b) the generator didnt work out that the table has a autoincrement key.
>
> Regards
> Alan
I turned on debugging a while ago, but it's not helping me see what is
wrong.
My db.ini follows:
[bug]
bug_id = 129
bug_status = 130
bug_title = 130
bug_description = 194
bug_notes = 194
bug_modified = 142
bug_created = 142
[bug__keys]
bug_id = N
[email]
email_id = 129
email_type = 130
email_address = 130
member_id = 129
email_private = 145
[email__keys]
email_id = N
[member]
member_id = 129
member_first_name = 130
member_middle_name = 130
member_last_name = 130
member_suffix = 130
member_gender = 130
member_birth_date = 134
member_block_fap = 145
member_description = 194
member_comments = 194
member_company = 130
member_primary_address_id = 129
member_primary_email_id = 129
member_last_modified = 142
[member__keys]
member_id = N
Is this where I check to see if the generator has noticed the auto increment
stuff?
I don't see any kind of useful information in the debug for this. It says
when I insert the row:
> dataobjects_email: QUERY: INSERT INTO email (email_type , email_address ,
> member_id , email_private ) VALUES ('Work' , '' , 1 , 0 )
> dataobjects_email: query: QUERY DONE IN 0.015340089797974 seconds
> dataobjects_email: 1: Clearing Cache for dataobjects_email
>
> setting primary email id to point to one of these new emails (1)...
In my code I do the insert and assign it's return value to a placeholder var
than echo that statement:
$new_email_id = $new_email->insert();
echo "<p>setting primary email id to point to one of these new emails
($new_email_id)...";
I've even created isolated scripts to verify this is happening for all my
objects, no matter the context. See this example:
code:
<?php
require('config.php');
// Create new member object
$member = new DataObjects_Member();
$member->setMember_first_name("Homer");
$member->setMember_middle_name("");
$member->setMember_last_name("Simpson");
$member->setMember_suffix("");
$member->setMember_gender("M");
$member->setMember_birth_date("");
$member->setMember_description("Works in sector 7G.");
$member->setMember_company("Springfield Nuclear Power Plant");
$homers_id = $member->insert();
echo "Homer's id is: $homers_id";
?>
Ouput (with debug on):
dataobjects_member: QUERY: INSERT INTO member (member_first_name ,
member_middle_name , member_last_name , member_suffix , member_gender ,
member_birth_date , member_description , member_company ) VALUES ('Homer' ,
'' , 'Simpson' , '' , 'M' , '2004-05-19' ,
'Works in sector 7G.' ,
'Springfield Nuclear Power Plant' )
dataobjects_member: query: QUERY DONE IN 0.0011630058288574 seconds
dataobjects_member: 1: Clearing Cache for dataobjects_member
Homer's id is: 1
***
Of course looking at the DB his id is much higher.
~ Mike
-----
Mike Zornek
Web Designer, Media Developer, Programmer and Geek
Personal site: <http://MikeZornek.com>
New Project: <http://WebDevWiki.com>