2017-09-13 77 views
1

我連接到MSSQL服務器,我的查詢不返回任何結果 - 如果我使用echo $sql;聲明所有我已經返回的是Array所以我甚至不能檢查語法問題!有兩個和/在哪裏在PHP SQL語句

應該如何修改這個語法,以使所有3個語句執行正確的語句?

<select name="employee" id="employee"></select> 
$option = array(); 
$option['driver'] = 'mssql'; 
$option['host'] = 'IP ADDRESS'; 
$option['user'] = 'USER'; 
$option['password'] = 'Pass'; 
$option['database'] = 'DB'; 
$option['prefix'] = ''; 
$db = JDatabase::getInstance($option); 
$query = $db->getQuery(true); 
$query->select($db->quotename(array('Red,Blue,Green'))); 
$query->from($db->quoteName('EMS')); 
$datefield_name = $db->quoteName('TermDate'); 
$employee_name = $db->quoteName('employee'); 
$query->where("$datefield_name >= " . $db->quote($d1), 'AND'); 
$query->where("$datefield_name <= " . $db->quote($d2)); 
if ($employeename != 'All') { 
    $query->where("$employee_name <= " . $db->quote($employee)); 
} 
$db->setQuery($query); 
echo $query; 
$query = $db->loadObjectList(); 
+0

你清楚地使用某種類型的內置數據庫類的。在不知道你正在使用這個班的結構的情況下,我們無法幫助你。我們需要該數據庫類來幫助。另外,我沒有看到名爲$ sql的變量。如果你的意思是$ query,那麼使用var_export($ query)來弄清楚它說的是什麼。但$ query是$ db的一個實例,然後將其傳遞迴數據庫實例。我們需要你的數據庫類。 – tdoggy

回答

0

我不是MSSQL的專家,但我的第一印象是,在你的where語句中,你不應該在引號內包含你的變量。因此,而不是

$query->where("$datefield_name <= " . $db->quote($d2)); 

嘗試

$query->where($datefield_name . " <= " . $db->quote($d2)); 
+0

它可能不是「正確的」語法,但我在其他一些Joomla文章上運行它,它按預期工作。 – BellHopByDayAmetuerCoderByNigh