2017-09-13 61 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