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')"