On Tue, 24 Jun 2003 18:42:54 +0100 Robbie Armour <[EMAIL PROTECTED]> wrote:

> I guess so - no special action is required if you store numbers in a
> varchar field in MySQL, only text (longtext or mediumtext too).
> Also, the same thing works OK with an Oracle long field.

>> From: Hardy Merrill <[EMAIL PROTECTED]>
>> To: Robbie Armour <[EMAIL PROTECTED]>
>> CC: [EMAIL PROTECTED]
>> Subject: Re: Rounding errors storing numbers in MySQL text fields
>> using DBI
>> Date: Tue, 24 Jun 2003 11:56:24 -0400
>>
>>Robbie Armour [EMAIL PROTECTED] wrote:
>>> That's it!  - 0.4444 then '0.4444'  fails whereas '0.4444',
>>> 0.4444 works.
>>> I shall put something in my code to circumvent this.

A dummy bind_param() with a string in it before the real bind_param()
calls should work.

>> Hold on - I realize I'm being thick here, but what does
>> that prove?  The original problem was that 0.4444 ended
>> up coming out of MySQL as 0.44, right?  What is the
>> resolution?

My guess is that DBD::mysql realizes that input to a VARCHAR column is
always a string, but for TEXT columns it falls back on the type of the
parameter value ( "0.4444" is a string, but 0.4444 is a number).  Once
the type of the 'placeholder' is established, its characteristics are
used from then on.  I say 'placeholder' because DBD::mysql simulates
placeholders by pasting the parameter values in place of the
placeholder markers after quote()ing them as it thinks appropriate.

-- 
Mac :})
Give a hobbit a fish and he eats fish for a day.
Give a hobbit a ring and he eats fish for an age.

Reply via email to