【发布时间】:2015-03-27 17:11:08
【问题描述】:
我正在尝试执行这样的查询
$conn = Doctrine_Manager::connection()->getDbh();
$query = "SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'GROUP_CONCAT(IF(DATE(punch_in_user_time) = ', QUOTE(DATE(punch_in_user_time)), ', TIME(punch_in_user_time), NULL)) AS ', QUOTE(DATE(punch_in_user_time)),
',GROUP_CONCAT(IF(DATE(punch_out_user_time) = ', QUOTE(DATE(punch_in_user_time)), ', TIME(punch_out_user_time), NULL)) AS ', QUOTE(DATE(punch_in_user_time))
) ORDER BY punch_in_user_time
) INTO @sql
FROM ohrm_attendance_record
where DATE(punch_in_user_time) between QUOTE(" . $fromDate .") and QUOTE(" . $toDate . ")
ORDER BY punch_in_user_time ;
SET @@group_concat_max_len = 10000;
SET @sql = CONCAT('select emp_number, ', @sql,
' from hs_hr_employee e LEFT JOIN ohrm_attendance_record a ON a.employee_id = e.emp_number group by emp_number
where true ');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;";
$statement = $conn->query($query);
return $statement->fetchAll(PDO::FETCH_ASSOC);
但是会出现这样的错误
01/28/15 18:08:41,494 [3268] ERROR filter.ExceptionCatcherFilter - Uncaught Exception: exception 'PDOException' with message 'SQLSTATE[HY000]: General error' in C:\xampp\htdocs\orangehrm\symfony\plugins\orangehrmAttendancePlugin\lib\dao\AttendanceDao.php:553
查询在 MySQL 上完美运行,我的代码有什么问题?
请帮忙!
【问题讨论】:
-
我正在尝试使用 $statement = $conn->prepare($query);但仍然没有运行
-
你真的需要通过准备好的声明来做到这一点吗?