MySQL に値を保存する際に、本当に奇妙な問題に遭遇しました。前提:
金銭的な値(注文の合計など)を格納するために使用するテーブルがありますがDECIMAL(15,8)
、たとえば挿入しようとすると:
2,45545345
これは次のように保存されます
2.00000000
MySQL の FORMAT/CAST 関数を試しましたが、それでも同じ出力が得られました。
これは、クエリが生成される方法です。
$db->query("INSERT INTO `random_table_name` SET currency_value = '" . floatval($value) . "'");
私も試しdoubleval
ましたが、同じ結果です。面白いことに、この同じコードは数週間前に正常に機能していましたが、これを引き起こす可能性のある db 構造または db クラスへの変更を思い出すことができません。