2013-02-26 78 views
0

我有一個帶有event_id列和scheduled_at列的數據庫表。 查詢被稱爲PHP和是這樣的:SQL查詢不會接受所有參數的變量

$columnName = 'scheduled_at'; 
$start = '2013-02-26'; 
$end = '2013-02-27'; 
// query to be executed 
$sql = (SELECT * FROM $table WHERE $columnName BETWEEN $start AND $end); 

查詢不起作用執行時,但是下面沒有工作

$sql = (SELECT * FROM $table WHERE $columnName BETWEEN $start AND '2013-02-27'); 

$sql = (SELECT * FROM $table WHERE $columnName BETWEEN $start AND $start); 

不起作用,但以下工作確實有效

$sql = (SELECT * FROM $table WHERE $columnName BETWEEN '2013-02-27' AND '2013-02-27'); 

手動插入值使其工作,但失去了該功能的實用性。任何想法,爲什麼它不會工作?

回答

1

您需要引用您的變量,以便創建的SQL字符串包含日期值周圍的引號。例如:

$sql = "(SELECT * FROM $table WHERE $columnName BETWEEN '$start' AND '$end')"; 
+0

非常感謝:D!我的整個項目都在一起,這是最後的考驗。 – Erotomania 2013-02-26 11:09:27