1

float変数を含むmysqlテーブルがあります。それらをmongodbコレクションに渡したいのですが、渡すと、phpがfloat変数を文字列に変換します。このコードを使用して変数の型をfloatとして設定しようとしましたが、すべてのフィールドで1が返されます。

foreach( $mytables as $table => $struct ) {
  $sql = mysql_query("SELECT num_auto FROM XL_10331_EXPLOIT_251012 where flightid like '191622'") or die( mysql_error() );
  $count = mysql_num_rows( $sql );
  // If it has content insert all content
  if( $count > 0 ) {
    while($info = mysql_fetch_row($sql)) {
        $int_info=intval($info);
          $mosql[]=($int_info);
  }

   // Starts new collection on mongodb
  $collection = $modb->floatdb;

  $collection->insert(array('num_auto'=>$mosql));

私は私の間違いを見つけることができません、どんな助けでも本当にありがたいです!ありがとう!

4

2 に答える 2

2

intval数値の整数部分(または文字列内の数値)のみを返します。次のようなフロートに値をキャストしてみてください

$float_value = (float) $sql_number; 
于 2013-02-28T16:50:29.413 に答える
2

mysql_fetch_row値ではなく配列を返します。したがって、以下を使用する必要があります。

$int_info = (float)$info[0];
于 2013-02-28T16:52:29.927 に答える