【问题标题】:floatval returns 1 php errorfloatval 返回 1 个 php 错误
【发布时间】:2013-02-14 23:16:54
【问题描述】:

我有一个带有浮点变量的 mysql 表。我想将它们传递给 mongodb 集合,但是当我这样做时,php 将我的浮点变量转换为字符串。我尝试使用此代码将变量类型设置为浮点数,但它在每个字段中都返回 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));

我找不到我的错误,任何帮助将不胜感激! 谢谢!

【问题讨论】:

  • $int_info=intval($info); 看起来您将值强制为 int。
  • floatval() 在问题标题中,但不在代码中。
  • 强制:mysql_* 函数将是 deprecated in PHP 5.5。不建议编写新代码,因为它会在未来被删除。相反,MySQLiPDObe a better PHP Developer
  • 感谢您的帮助。实际上我一周前才开始使用 php,那对我来说真的很困难 :)

标签: php variables types floating-point


【解决方案1】:

mysql_fetch_row 返回一个数组,而不是一个值。所以你必须使用:

$int_info = (float)$info[0];

【讨论】:

    【解决方案2】:

    intval 将仅返回数字(或字符串中的数字)的整数部分。尝试将值转换为浮点数,例如

    $float_value = (float) $sql_number; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      相关资源
      最近更新 更多