estoy usando MySQL con Zend Framework & Doctrina 2. Creo que incluso si usted no utiliza Doctrina 2, usted estará familiarizado con errores como¿Cómo depurar las consultas de MySQL/Doctrine2?
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ASC' at line 1
El problema es que yo no veo la consulta completa. Sin un marco ORM, probablemente podría repetir el sql fácilmente, pero con un marco, ¿cómo puedo averiguar qué SQL está tratando de ejecutar? Entrecerré el error hasta
$progress = $task->getProgress();
$progress
se declara
// Application\Models\Task
/**
* @OneToMany(targetEntity="TaskProgress", mappedBy="task")
* @OrderBy({"seq" = "ASC"})
*/
protected $progress;
En MySQL, la clase de tarea parece
CREATE TABLE `tasks` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`owner_id` int(11) DEFAULT NULL,
`assigned_id` int(11) DEFAULT NULL,
`list_id` int(11) DEFAULT NULL,
`name` varchar(60) NOT NULL,
`seq` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `tasks_owner_id_idx` (`owner_id`),
KEY `tasks_assigned_id_idx` (`assigned_id`),
KEY `tasks_list_id_idx` (`list_id`),
CONSTRAINT `tasks_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`),
CONSTRAINT `tasks_ibfk_2` FOREIGN KEY (`assigned_id`) REFERENCES `users` (`id`),
CONSTRAINT `tasks_ibfk_3` FOREIGN KEY (`list_id`) REFERENCES `lists` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1$$
Si usted tiene un objeto de consulta Doctrina, que no está claro en el código que has publicado, puede ejecutar '$ query-> getSqlQuery() 'para ver el SQL. Encuentra tu objeto de consulta en tu código y dale salida para ver qué está pasando. Alternativamente, puede activar el registro de consultas en SQL para ver qué es. – thetaiko