Я столкнулся с этим действительно раздражающим поведением и хочу знать, делаю ли я что-то не так, или это умышленно (и если да, то почему).
Когда у меня в php (5.3) есть переменная типа double, и я хочу вставить ее в базу данных (MYSQL 5.0) в поле типа double, значение всегда округляется до 6 цифр момент, когда я использую PDO. Итак, код ниже:
$stmt = $pdo->prepare("UPDATE someTable SET someDouble = :somePHPDouble;");
$number = 0.11124379542256;
$stmt->bindValue(':somePHPDouble', $number);
$stmt->execute();
Результаты в 0.111244 вставлены в БД. Но когда я приведу переменную к строке (!) В выражении привязки, например:
$stmt->bindValue(':somePHPDouble', (string)$number);
правильно вставляет как 0.11124379542256.
Что здесь происходит? Я невежественен. MySQL тип данных someDouble действительно является двойным, и при вставке через консоль mysql он просто работает. И переменная в php действительно двойная, поэтому мне кажется, что внутри PDO что-то идет не так.
Заранее спасибо,
-CodePoet.