Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 返回SQL查询中忽略设置年份限制的所有数据_Php_Mysql_Sqlbuilder - Fatal编程技术网

Php 返回SQL查询中忽略设置年份限制的所有数据

Php 返回SQL查询中忽略设置年份限制的所有数据,php,mysql,sqlbuilder,Php,Mysql,Sqlbuilder,我编写了以下查询以返回员工已休的所有假期 它应该做的是返回当前年度的值,而忽略其余的值 它所做的是返回表中的所有值,包括与前几年相关的值 $sqlBuilder = new SQLQBuilder(); $arrFields[0] = '`leave_date`'; $arrFields[1] = '`leave_status`'; $arrTable = "`leave_table`"; $selectConditions[1] = "`employee_

我编写了以下查询以返回员工已休的所有假期

它应该做的是返回当前年度的值,而忽略其余的值

它所做的是返回表中的所有值,包括与前几年相关的值

$sqlBuilder = new SQLQBuilder();

    $arrFields[0] = '`leave_date`';
    $arrFields[1] = '`leave_status`';

    $arrTable = "`leave_table`";

    $selectConditions[1] = "`employee_id` = '".$employeeId."'";
    $selectConditions[2] = "`leave_date` >= '".date('Y')."-01-01'";

    $query = $sqlBuilder->simpleSelect($arrTable, $arrFields, $selectConditions, $arrFields[0], 'ASC');

    $dbConnection = new DMLFunctions();

    $result = $dbConnection -> executeQuery($query);

    $leaveArr = $this->_buildObjArr($result);

    return $leaveArr;
有人知道我做错了什么吗?

用这个

where 
    leave_date>=current_date()-interval dayofyear(current_date())-1 day and
    leave_date<current_date()-interval dayofyear(current_date())-1 day+interval 1 year
在哪里
休假日期>=当前日期()-每年的间隔日(当前日期())-1天和
离开日期这很简单

$selectConditions[2] = "year(`leave_date`) = year(now())";

若有休假日,则不得使用索引。这不会导致任何更改。我一直收到前一年的请假。请假日期字段的类型是什么?应该可以,但我建议您检查simpleSelect方法,如果它在第三个参数中使用数组并正确处理它。划掉此查询并使用您的方法进行MySQL查询。工作!谢谢!:)