Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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到MySQL查询,多个中间子句未按预期工作_Php_Mysql_Between - Fatal编程技术网

PHP到MySQL查询,多个中间子句未按预期工作

PHP到MySQL查询,多个中间子句未按预期工作,php,mysql,between,Php,Mysql,Between,上面的查询没有检索结果,即使它应该检索。 奇怪的是,以下查询工作正常: $a = 51; $b = 53; $x = -2; $y = 2; $query1 = "SELECT * FROM Events WHERE (latitude BETWEEN '$a' AND '$b') AND (longitude BETWEEN '$x' AND '$y')"; 用实际值替换第二个变量之间的任何一个变量都会返回 预期结果 但是查询不能同时处理这两个变量 在回显$query1以

上面的查询没有检索结果,即使它应该检索。 奇怪的是,以下查询工作正常:

$a = 51;
$b = 53;

$x = -2;
$y = 2;
$query1 = "SELECT * FROM Events WHERE (latitude BETWEEN '$a' AND '$b') 
        AND (longitude BETWEEN '$x' AND '$y')";
用实际值替换第二个变量之间的任何一个变量都会返回 预期结果 但是查询不能同时处理这两个变量

在回显$query1以确保正确编写查询时:

 $query2 = "SELECT * FROM Events WHERE (latitude BETWEEN '$a' AND '$b') 
        AND (longitude BETWEEN '$x' AND 2)"; 

 $query3 = "SELECT * FROM Events WHERE (latitude BETWEEN '$a' AND '$b') 
        AND (longitude BETWEEN -2 AND '$y')";
所以我很有信心没有语法错误


你知道问题出在哪里吗?

我不知道睡眠中的SQL输入和输出,但有时你会在这些值周围使用引号,有时则不会。所以我至少可以想象,由于查询不同,它们得到的结果也不同。您似乎不知道,所以可能只是疏忽了引号?纬度和经度的数据类型是什么?@Hakre,如果引号是问题所在,那么查询2和查询3将无法工作,因为这些查询中也使用引号。@Nick它们是双引号。您能试着在MYSQL cli上不使用PHP执行该查询吗?你有什么结果吗?我觉得这个问题很好。。
  "SELECT * FROM Events WHERE (latitude BETWEEN '51' AND '53') 
        AND (longitude BETWEEN '-2' AND '2')"