Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 潜在的数据类型问题,sql介于正值和负值之间_Php_Mysql - Fatal编程技术网

Php 潜在的数据类型问题,sql介于正值和负值之间

Php 潜在的数据类型问题,sql介于正值和负值之间,php,mysql,Php,Mysql,是的,我以前也问过类似的问题,但我想我可能对这个问题有更好的理解,应该能够写得更好 现在的情况是,我已经计算出了大约20英里,以拉特为起点。我正在数据库中搜索起始lat和起始long两侧的该数量。一旦我得到结果,我会把他们通过一个不同的功能,以检查确切的距离,并继续下去 这里有一些数据,这是我要查询的 $lat1 = 55.02 $lat2 = 53.04 $long1 = 1.04 $long2 = -0.43 我正在使用的查询: SELECT * FROM table WHERE (Lat

是的,我以前也问过类似的问题,但我想我可能对这个问题有更好的理解,应该能够写得更好

现在的情况是,我已经计算出了大约20英里,以拉特为起点。我正在数据库中搜索起始lat和起始long两侧的该数量。一旦我得到结果,我会把他们通过一个不同的功能,以检查确切的距离,并继续下去

这里有一些数据,这是我要查询的

$lat1 = 55.02
$lat2 = 53.04
$long1 = 1.04
$long2 = -0.43
我正在使用的查询:

SELECT * FROM table WHERE (LatCo BETWEEN :lat1 AND :lat2) AND (LongCo BETWEEN :long1 AND :long2)
我用标准的PDO方式绑定变量

$stmt->bindParam(":lat1", $lat1);
$stmt->bindParam(":lat2", $lat2);
$stmt->bindParam(":long1", $long1);
$stmt->bindParam(":long2", $long2);
我的表格中的一些示例数据和预期结果:

Name  |  Lat  | Long  | Current Outcome
PL1   |54.023 |0.53   | Correct, pulls record
PL2   |58.125 |1.64   | Correct, does not pull record
PL3   |53.875 |-0.46  | Incorrect, pulls record
所以我对PL3做了一些快速测试,它似乎在Long等于或大于-0.46的地方拉它,但是如果它是-0.47,它不会拉记录,即使它应该拉记录


我认为这可能是表中的一个数据类型问题,目前将其设置为
varchar

between
>=的缩写,虽然我的示例不太好,但我确实检查了它们,以防止发生这种情况