Edit report at https://bugs.php.net/bug.php?id=64132&edit=1

 ID:                 64132
 User updated by:    ipernet at gmail dot com
 Reported by:        ipernet at gmail dot com
 Summary:            PDO/MySQL query fails when binding a float value
                     with data type PDO::PARAM_INT
 Status:             Open
 Type:               Bug
 Package:            PDO related
 Operating System:   Slackware 13 x64
 PHP Version:        5.4.11
 Block user comment: N
 Private report:     N

 New Comment:

Important note:

This only happens if the set locale use a comma as decimal separator. 

Please add "setlocale(LC_ALL, 'fr_FR');" at the beginning of the test code to 
reproduce. 

This is still an unexpected behavior.


Previous Comments:
------------------------------------------------------------------------
[2013-02-02 15:14:14] ipernet at gmail dot com

Description:
------------
PHP:
5.4.11

PDO Client API version:
mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $ 

MySQL:
5.5.18-log

Using a PDO prepared statement to insert a new row, the query fails if a float 
value is passed for a token and this token use PDO::PARAM_INT as data type.

Test script:
---------------
CREATE TABLE IF NOT EXISTS `test` (
  `kms` int(10) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-------------------------------------------


$query  =       $dbh->prepare('INSERT INTO test(kms) VALUES(:kms)');

$query->bindValue(':kms',  1.25, PDO::PARAM_INT);
$query->execute();

var_dump($query->errorInfo());

Expected result:
----------------
- "1" should be inserted in the table
- Query should execute properly and do not lead to a SQL parsing error.

Actual result:
--------------
array(3) {
  [0] =>
  string(5) "21S01"
  [1] =>
  int(1136)
  [2] =>
  string(47) "Column count doesn't match value count at row 1"
}


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=64132&edit=1

Reply via email to