2016-12-29 11 views
-1

をPHPではない:phpmyadminのでそれを実行シンプルなMySQLの要求は、phpMyAdminのでは動作しますが、次のように私は、単純なSELECT要求を持っている

$sql = "SELECT * FROM crumbs WHERE Latitude > '$latmin' AND Latitude < '$latmax' AND Longitude > '$lngmin' AND Longitude < '$lngmax'"; 

には問題がありません。私はPHPでクエリを実行すると

しかし、:

if ($conn->query($sql) === TRUE) { 
echo "Query successful"; 
} else { 
echo "Error: " . $sql . "<br>" . $conn->error; 
} 

をそれは私にエラーを与えますが、唯一のSQL変数を返します。

UPDATE:

$postdata = file_get_contents("php://input"); 
$data = json_decode($postdata); 

$lat = $data->lat; 
$lng = $data->lng; 

//using quick and dirty estimate that 111,111 meteres is 1 degree of lat/lng 
$variation = 1350/111111; 
$latmin = $lat - $variation; 
$latmax = $lat + $variation; 
$lngmin = $lng - $variation; 
$lngmax = $lng + $variation; 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
//this will get a rectangle that can contain all possible markers within range 
$sql = "SELECT * FROM crumbs WHERE Latitude > '$latmin' AND Latitude < '$latmax' AND Longitude > '$lngmin' AND Longitude < '$lngmax'"; 


if ($conn->query($sql) === TRUE) { 
    echo "Query successful"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 
+0

エラーは何ですか? –

+0

あなたが生成しているクエリ文字列をチェックしましたか?渡しているパラメータが期待どおりに置き換えられていない場合は、問題が発生する可能性があります。あなたもエラーを投稿してください。がんばろう。 – Eli

+0

$ sqlを出力して注入された変数が期待どおりに含まれていることを確認します。そうでない場合は、( ')を( ') – Ali

答えて

-1

、このいずれかを試してください:ここでは、より完全なコードがあります。

$sql = "SELECT * FROM crumbs WHERE Latitude > ".$latmin." AND Latitude < ".$latmax." AND Longitude > ".$lngmin." AND Longitude < ".$lngmax." "; 

この1つはあなたに役立ちます。

+2

実行するかしないか。 「試行」はありません。 ***良い答え***は、何が行われたのか、それがなぜOPのためだけでなく、将来の訪問者のためにそうした方法で行われたのかについての説明を常に持っています。単一引用符内の変数(OPが行ったように)が適切に補間されるので、変数を単に連結することで違いはありません –

+0

Jay Blanchard、あなたは絶対に正しいです。私はあなたの懸念に同意します。しかし私の意図は、あなたが推測している "試し"を書くことではありませんでした。良いアドバイスありがとう。 –

+0

あなたが「試してみてください」と書いたので、私は何も想定していません。 –

関連する問題