私はいくつかのアイテムの価格をmysqlテーブルの中に入れなければなりません。私はDECIMAL(10,2)
を使用してテーブルを作成しているので、コンマの後に2桁を超える必要はありません(たとえば、123,45は入力として受け入れられますが、123,456はPHPで123,45に丸められます)。mysqliの小数点を扱う
最初の質問:DECIMAL(10,2)
を使用すると、コンマの前に保存できる数字の数はどのようにわかりますか?私はそれが10ではないことを知っています。10はMysqlがこれらの数値で数学を実行するときに使用する精度です。つまり、数値そのものの長さはどこで指定されていますか?
2番目の質問:私はデータ型に合わせてユーザー入力を丸めるためにPHPを使用しています(コンマの後に2つの数字で浮動小数点数)。これらのデータを挿入するには、どうすればmysqli->bind_param
を使用しますか? bind_param
が受け入れるこれらのデータ型(documentation)のどれを使用する必要がありますか(おそらくなぜですか?)
Character Description
i corresponding variable has type integer
d corresponding variable has type double
s corresponding variable has type string
b corresponding variable is a blob and will be sent in packets
ありがとう!それで10 - 2だと分かっています。 – Saturnix
縮尺の正確な数値が必要な場合は、 'double'や' float'の使用をお勧めしません。 http://dev.mysql.com/doc/refman/5.6/en/problems-with-float.html –
を参照してください。この質問と回答では、mysqlは 'decimal'を使います。これは、doubleに設定されているバインド・パラメータ・タイプのみです。そして、それは与えられたタイプからの唯一のオプションです。 –