Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: DBI quoting when I don't want it to

by bart (Canon)
on Aug 21, 2002 at 15:41 UTC ( [id://191771]=note: print w/replies, xml ) Need Help??


in reply to DBI quoting when I don't want it to

So if a user types '25/12/2002', then DBI does something like:

INSERT INTO table (thisdate) VALUES('2002-12-25') WHERE id = 1;

(My function has converted it to YYYY-MM-DD format).

In the interval style one, DBI does:

INSERT INTO table (thisdate) VALUES ('DATE(NOW() + INTERVAL \'+1 month\')') WHERE id =1

You don't show any code. I don't see how and what you're doing.

But anyway: you could try to make DBI not to quote the date field, ever, and produce your own quotes when you need them. $dbh->quote($string) can do that for you.

Personally, I'd take another approach, and convert the user input to a valid date in plain Perl, instead of letting the DB do it. One of the Date::* modules surely must be able to do it for you. Otherwise, it's not too hard, or too big, to write it yourself. See, for a working code example, the calculation for cookie expiration dates in the sub 'expires_calc' in CGI::Util (which comes with CGI.pm). And since you're reformatting the date anyway, I think it must be pretty easy to fit that little bit of extra functionality in.

  • Comment on Re: DBI quoting when I don't want it to

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://191771]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (3)
As of 2024-04-20 15:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found