Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO中数据类型的条件为float时如何返回结果?_Php_Pdo_Decimal - Fatal编程技术网

Php PDO中数据类型的条件为float时如何返回结果?

Php PDO中数据类型的条件为float时如何返回结果?,php,pdo,decimal,Php,Pdo,Decimal,我有一个这样的数据,我称之为正常表: z 0 0.01 0.02 --- ------ ------- ------ -3.4 0.0003 0.0003 0.0003 -3.3 0.0005 0.0005 0.0005 -3.2 0.0007 `0.0007` 0.0006 -3.1 0.001 0.0009

我有一个这样的数据,我称之为正常表:

    z       0         0.01       0.02  
   ---    ------     -------    ------

   -3.4   0.0003     0.0003     0.0003

   -3.3   0.0005     0.0005     0.0005

   -3.2   0.0007     `0.0007`     0.0006

   -3.1   0.001      0.0009     0.0009

   -3     0.0013     0.0013     0.0013
我的值是z=
-3.21

它表示行=
-3.2
和列=
0.01

因此,我将得到值=
0.0007

我在代码中使用PDO从数据库中获取任何值:

public function SelectTableZ($col, $z){
        try{
            $query = "SELECT :col as value FROM table_normal WHERE z=:z";

            $this->Statement = $this->Connection->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));

            $this->Statement->bindParam(":col",$col,PDO::PARAM_STR);

            $this->Statement->bindParam(":z",$z,PDO::PARAM_STR);

            $this->Statement->execute();

            $this->Statement->setFetchMode(PDO::FETCH_OBJ);

            $result = $this->Statement->fetchAll();

            $this->Statement->closeCursor();

            if($result){
                return $result;
            } /*else throw new Exception("Comment not selected!");*/ else return false;
        }catch(Exception $e){
            echo "Caught Exception: ".$e->getMessage();
            return null;
        }
    }
$value = -3.21;

$Z = number_format($value * 10, 0, '', '') / 10;

$col = substr(floor($value * 100), -1);
if ($col > 0) { 
    $col /= 100; 
}

$SelectTableZ = $session->SelectTableZ($col, $z);
if(!empty($SelectTableZ)){
  foreach($SelectTableZ as $data){
    echo $data->value;
  }
}
这是我想从数据库中得到的值:

public function SelectTableZ($col, $z){
        try{
            $query = "SELECT :col as value FROM table_normal WHERE z=:z";

            $this->Statement = $this->Connection->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));

            $this->Statement->bindParam(":col",$col,PDO::PARAM_STR);

            $this->Statement->bindParam(":z",$z,PDO::PARAM_STR);

            $this->Statement->execute();

            $this->Statement->setFetchMode(PDO::FETCH_OBJ);

            $result = $this->Statement->fetchAll();

            $this->Statement->closeCursor();

            if($result){
                return $result;
            } /*else throw new Exception("Comment not selected!");*/ else return false;
        }catch(Exception $e){
            echo "Caught Exception: ".$e->getMessage();
            return null;
        }
    }
$value = -3.21;

$Z = number_format($value * 10, 0, '', '') / 10;

$col = substr(floor($value * 100), -1);
if ($col > 0) { 
    $col /= 100; 
}

$SelectTableZ = $session->SelectTableZ($col, $z);
if(!empty($SelectTableZ)){
  foreach($SelectTableZ as $data){
    echo $data->value;
  }
}
这个问题有什么解决办法吗


谢谢。

你有什么问题??可能是$Z!=$z?@davidstrachan-我刚刚更新了这个问题。请帮忙!为什么PDO不能接受数据类型float?