有两个和/在哪里在PHP SQL语句
问题描述:
我连接到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();
答
我不是MSSQL的专家,但我的第一印象是,在你的where语句中,你不应该在引号内包含你的变量。因此,而不是
$query->where("$datefield_name <= " . $db->quote($d2));
尝试
$query->where($datefield_name . " <= " . $db->quote($d2));
+0
它可能不是“正确的”语法,但我在其他一些Joomla文章上运行它,它按预期工作。 – BellHopByDayAmetuerCoderByNigh
你清楚地使用某种类型的内置数据库类的。在不知道你正在使用这个班的结构的情况下,我们无法帮助你。我们需要该数据库类来帮助。另外,我没有看到名为$ sql的变量。如果你的意思是$ query,那么使用var_export($ query)来弄清楚它说的是什么。但$ query是$ db的一个实例,然后将其传递回数据库实例。我们需要你的数据库类。 – tdoggy