我从页面url标题中的查询字符串中收到2个参数。我想使用这些parrams作为查询的日期条件,但是当我尝试添加到我的where子句时,页面返回500错误。
这是我的语法,我应该改变什么才能在where子句中使用这两个变量?
<?php
header('Access-Control-Allow-Origin: *');
$begin = $_GET['begin'];
$end = $_GET['end'];
$option = array(); //prevent problems
$option['driver'] = 'mssql';
$option['host'] = 'XXX.XXX.XX.XX';
$option['user'] = 'user';
$option['password'] = 'pass';
$option['database'] = 'database';
$option['prefix'] = '';
$db = JDatabase::getInstance( $option );
$result = $db->getQuery(true);
$result->select($db->quoteName(array('Teacher', 'student', 'countenrolled', 'countattending')));
$result->from($db->quoteName('[SchoolStuff'));
$result->where($db->quoteName('registerdate') . ' >= '. $begin. AND ' <= ' .$end.);
$db->setQuery($result);
$results = $db->loadObjectList();
?>
<table border="1">
<thead>
<tr>
<th>Teacher</th>
<th>Student</th>
<th>Count Enrolled</th>
<th>Count Attending</th>
</tr>
</thead>
<tbody>
<?php
foreach( $options as $option ) {
print "<tr>";
print "<td>".$option->Teacher."</td>";
print "<td>".$option->Student."</td>";
print "<td>".$option->CountEnrolled."</td>";
print "<td>".$option->CountAttending."</td>";
print "</tr>";
}
?>
</tbody>
</table
答案 0 :(得分:0)
在WHERE子句中,应引用AND。此外,在where子句中,您要比较的字段需要同时进行比较。
其中&gt; = b AND a&lt; = c
$result->where($db->quoteName('registerdate') . " >= '". $begin."' AND ".$db->quoteName('registerdate')." <= '" .$end."'");
答案 1 :(得分:0)
顺便说一句,您可以将数组传递给“where”
$query->where(array(first thing, second thing, &tc), operator[defaults to "AND"]);