Php 浮点在mysql数据库中不工作

Php 浮点在mysql数据库中不工作,php,database,floating-point,compare,Php,Database,Floating Point,Compare,我正在使用$_GET['var']获取一个变量,然后将其与数据库中的一个变量进行比较。变量是1.1,在数据库上,var被设置为“float”,所以我知道它可以处理小数,但是当我将它们与下面的代码进行比较时,我什么也得不到 include 'connect.php'; $sql=mysql_query("SELECT * FROM table WHERE stuff='$stuff'"); while ($row=mysql_fetch_assoc($sql)) { $start=$ro

我正在使用$_GET['var']获取一个变量,然后将其与数据库中的一个变量进行比较。变量是1.1,在数据库上,var被设置为“float”,所以我知道它可以处理小数,但是当我将它们与下面的代码进行比较时,我什么也得不到

include 'connect.php';

$sql=mysql_query("SELECT * FROM table WHERE stuff='$stuff'"); 

while ($row=mysql_fetch_assoc($sql)) { 

$start=$row['start'];

}

echo $start; //nothing happens 

其中stuff='$stuff'
是字符串比较

这样比较数字

WHERE stuff = $stuff

将填充字段更改为双精度类型。 那么


这应该是sql查询

您可能没有看到任何输出,因为您的回音在循环之外


变量$start的范围将限制在循环中。

据我所知,float类型不精确。它不会显示您保存的实际值,因此
1.1
可能不是存储的实际值。尝试将字段设置为
decimal
,并为其指定长度,例如,
10,1
,其中10是最大位数(精度),1是小数点右侧的位数(刻度)。它应该可以执行类似于
stuff='1.1'
stuff=1.1
的查询,不要使用
float
(即使在表中插入1.1,float type的实际值也不是1.1,而是1.100000023841858)。在数据库(或十进制)中将其更改为
double

1)使用
var\u dump()
代替2)可能没有任何行满足
where
条件尝试在while循环之前使用
mysql\u error()
查看是否有任何错误。为我们发布更多信息以帮助您进一步了解。例如,当您直接在MySQL中运行查询时会发生什么情况?使用引号没有任何错误。它仍然应该正常工作(它不比较字符串,它将引号中的值转换为数字并比较数字),非常感谢。这就是解决办法。你们都很乐于助人,而且回答得很快。谢谢!
SELECT * FROM table WHERE stuff=$stuff