PHPのPDOを使用してMySQLデータベースにクエリを実行しています。数値と整数を文字列として返し、JSONをいじっています。
行ごとに値を型キャストする以外に、それを修正するためのより良い方法はありますか?
array(2) {
["name"]=> string(11) "Preliminary"
["sell_price"]=> string(6) "864.00"
}
php 5.3.3以降を使用している場合は、これを行うJSON_NUMERIC_CHECK
ための2番目の引数として使用できますjson_encode
。
この場合、@ ExplosionPillsは@user1032531のニーズに対応しますが、問題の最初の原因に対処しているわけではありません。
元の質問でわかるように、PHP側では、からの値sell_price
はすでにですが、ユーザーが言ったように、データベースには「数値」として格納されています(それがaかaかstring
はわかりません)。DECIMAL
FLOAT
ユーザー@jameshfisherがコメントで指摘したように、MySQLでPDOを使用する場合、「数値」を「数値」として取得するには、適切な構成が必要になる場合があります。あなたはそれを機能させるために必要なほとんどすべてを手に入れるために彼のリンクをたどることができます。
それから、受け入れられた答えは機能しています。なぜなら、を使用しJSON_NUMERIC_CHECK
json_encode
ないと、変数のタイプに関係なくすべてがテキストとして送信され、それを使用すると、元のタイプではなく推測に基づいたタイプに値が変換されるためです。 var。