16

PHPのPDOを使用してMySQLデータベースにクエリを実行しています。数値と整数を文字列として返し、JSONをいじっています。

行ごとに値を型キャストする以外に、それを修正するためのより良い方法はありますか?

array(2) { 
  ["name"]=> string(11) "Preliminary" 
  ["sell_price"]=> string(6) "864.00"
} 
4

2 に答える 2

10

php 5.3.3以降を使用している場合は、これを行うJSON_NUMERIC_CHECKための2番目の引数として使用できますjson_encode

参照: http: //us3.php.net/manual/en/function.json-encode.php

于 2012-08-22T16:50:16.713 に答える
3

この場合、@ ExplosionPillsは@user1032531のニーズに対応しますが、問題の最初の原因に対処しているわけではありません。

元の質問でわかるように、PHP側では、からの値sell_priceはすでにですが、ユーザーが言ったように、データベースには「数値」として格納されています(それがaかaかstringはわかりません)。DECIMALFLOAT

ユーザー@jameshfisherがコメントで指摘したように、MySQLでPDOを使用する場合、「数値」を「数値」として取得するには、適切な構成が必要になる場合があります。あなたはそれを機能させるために必要なほとんどすべてを手に入れるために彼のリンクをたどることができます。

それから、受け入れられた答えは機能しています。なぜなら、を使用しJSON_NUMERIC_CHECK json_encodeないと、変数のタイプに関係なくすべてがテキストとして送信され、それを使用すると、元のタイプではなく推測に基づいたタイプに値が変換されるためです。 var。

于 2014-11-04T13:00:51.447 に答える