2016-06-15 10 views
0

は、MySQLのダブル、小数点データ型はサポートしていませ!私はこのコラム(フロート、ダブル、10進数)、yii2リターン文字列にアクセスするとき (それとも私が間違っています)。私はPHPのフロートにフロートは、MySQLのダブル、小数点データ型をキャスト入力することができますどのようにYii2 - ActiveRecordの - yii2のActiveRecordのフロートで型キャスト

ActiveRecordのクラスで例えば
mytable(id int, f1 float, f2 double, f3 decimal(10,2)) 

public function filters(){ 
    // return [['f1','f2','f3'] => 'float', ...]; 
} 
+0

どのようにデータを正確に取得するのですか? –

+1

私はあなたの平均は次のようだと思います: '$ f1_float_but_string = mytable :: findOne(1) - > f1' –

答えて

2

Yiiは符号なし整数と浮動小数点数の文字列を返します。通常、DBMSタイプはPHPよりも多くを表すことができ、我々は精度を維持したいからです。

2

私はのYii内部について何も知らないが、私は、MySQLとPDOのために答えることができます。

まず、decimalタイプの場合、このデータタイプのポイントは文字列以外は取得できません。

残りについては、mysqlの対応する型のint値とdouble値を返すようにするには、​​の両方を確認する必要があります。 PDOは、用意されたステートメントから適切なデータ型を返します。

+0

ありがとう、うーん、これは私の質問とは関係ないと思います。 EMULATEは送信クエリに影響を与えます。これは出力結果に影響しますか? –

+0

私はこの質問にyii2 [PDOで小数点/二重/浮動小数点値をバインドする最良の方法は何ですか?](http://stackoverflow.com/questions/1335081/what-is-the-best) -way-to-bind-decimal-double-float-values-with-pdo-in-php) –

+0

あなたがリンクを投稿したこの質問は、最初に結果を返すこととは関係ありません。 –

関連する問題