http://www.perlmonks.org?node_id=323744


in reply to Class::DBI find_or_create method inserts record but $obj->id is undef

You should check out Class::DBI::FromCGI, which does this for you. However, if you just delete the id field from your CGI object after the call to find_or_create, your current code should work.
  • Comment on Re: Class::DBI find_or_create method inserts record but $obj->id is undef

Replies are listed 'Best First'.
Re: Re: Class::DBI find_or_create method inserts record but $obj->id is undef
by jerrygarciuh (Curate) on Jan 24, 2004 at 00:17 UTC
    Perrin,
    Thank you for the reply. Perhaps I am failing to grok how to delete the field from the CGI object, for instance if I do this:

    $q->param('class_id') = undef;

    I get "Can't modify non-lvalue subroutine call".
    Is there some other way to alter the object that will work here?
    TIA
    jg
    _____________________________________________________
    "The man who grasps principles can successfully select his own methods.
    The man who tries methods, ignoring principles, is sure to have trouble.
    ~ Ralph Waldo Emerson
        Mea culpa. Thanks for the reminder I have been away from Perl for a good while.

        Unfortunately the Class::DBI update() method does not work unless the $obj has an id defined and part of the problem here is that the insert id isn't in $obj unless find_or_create gets an explicit undef or an explicit $id.
        TIA
        jg

        _____________________________________________________
        "The man who grasps principles can successfully select his own methods.
        The man who tries methods, ignoring principles, is sure to have trouble.
        ~ Ralph Waldo Emerson