2012-04-22 52 views
1

以下是我的PHP代碼SQL語句是給我一個錯誤,它儘管

$till=2; 
$tilll=$till + 5; 

$result = mysql_query("SELECT * FROM test where id >=".$till."AND id <= ".$tilll) 

當我運行它看起來罰款我得到以下信息

您的SQL錯誤句法;檢查手冊中 對應於你的MySQL服務器版本正確的語法使用 附近的「身份證< = 7」在1號線

我不知道什麼是錯的呢?

回答

7

如果你嘗試顯示你的查詢,我想你會看到錯誤。 SQL可能看起來像這樣:

SELECT * FROM test where id >=2AND id <= 7 

您在AND之前缺少空格。試試這個:

$result = mysql_query("... id >=".$till." AND id <= ".$tilll) 
#          ^extra space here 

您還需要用分號終止PHP語句。我假設你正在這樣做,只是忘了發佈它,但最好仔細檢查在正確的地方是否有分號。

我還建議你使用的BETWEEN代替id >= ... AND id <= ...,那你給你的變量明智的名字:

$sql = "SELECT * FROM test WHERE id BETWEEN " . $min_id . " AND " . $max_id; 
$result = mysql_query($sql); 
if ($result) { 
    # Read results. 
} else { 
    # Handle error. 
} 
+1

謝謝:) 我真的惹惱:) – Yahoo 2012-04-22 11:44:06

1

失蹤前和

+0

謝謝:) 我真的惹惱:) – Yahoo 2012-04-22 11:43:09

1

空間爲了調試這樣的事情,它將查詢保存爲字符串是有意義的,並在執行之前將其轉儲。

$query = "SELECT ..."; 
print "Query: '$query'"; 
$result = mysql_query($query); 
+0

感謝@jonathon :) – Yahoo 2012-04-22 11:49:39