|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-08-08 14:06 UTC] tony2001@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 22 19:00:02 2025 UTC |
Description: ------------ When sending a large number (e.g. 10354520101202315) via a prepared stmt, the end result in MySQL is not correct. MySQL 4.1.19 Reproduce code: --------------- CREATE TABLE `test` (`number` bigint(20) NOT NULL default '0') ENGINE=MyISAM DEFAULT CHARSET=latin1 $db = &new MySQLi($host,$user,$pass,$dbname); $stmt = $db->stmt_init(); $sql = "INSERT INTO test (number) VALUES (?)"; $stmt->prepare($sql); $stmt->bind_param('d',$number); $number = 10354520101202315; $result = $stmt->execute(); Expected result: ---------------- Result in MySQL is 10354520101202316 - it should be 10354520101202315. If I use a normal INSERT statement, then it works as expected. Changing the bind type to 's' then that works, but I have to change $number to $number = '10354520101202315'; Actual result: -------------- MySQL reports number as 10354520101202316