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?