in reply to Re: DBI placeholders, bind_values, and SQL_DATE
in thread DBI placeholders, bind_values, and SQL_DATE

Thanks, but I'm writing a generic function -- one to which I can pass any number of fields/values of various types -- so I needed a way to generalize the SQL.

(btw, I've used the first suggestion above -- rather than pass the value 'Now()' to my generic insert_into function, I convert 'Now()' to the properly formatted date value for the database (MySQL))

  • Comment on Re: Re: DBI placeholders, bind_values, and SQL_DATE

Replies are listed 'Best First'.
Re: Re: Re: DBI placeholders, bind_values, and SQL_DATE
by chipmunk (Parson) on Aug 16, 2001 at 23:51 UTC
    Another option... I don't know if MySQL has the NVL function, which returns the first argument if it's not null, and the second argument otherwise. With Oracle, you could do something like this:
    $insert_sth = $dbh->prepare(<<"EndOfSQL"); INSERT INTO members (member_id, name, date_joined) VALUES (?, ?, NVL(?, SysDate)) EndOfSQL $insert_sth->execute(1, 'Bob', '2001-08-15'); # Bob actually joined y +esterday $insert_sth->execute(2, 'Tom', undef); # Tom is joining now
    So, you can bind a specific date in the execute, or you can bind undef and let the database specify the current date.

      Along this same sort of line you could set a default values in the database itself and then don't even put it in the SQL statement at all unless you don't want the current time for certain queries.