Recibí este error al ejecutar una sentencia PDO bajo Propel y Symfony (en windows):
Uncaught exception 'PDOException' with message 'could not find driver'
Problema:
Después de ver varios foros, blogs, discusiones, stackoverflow.com, etc., no encontraba la solución a pesar de que este error tenía 108.000 entradas en Google.
Phpinfo() me mostraba que todo estaba bien excepto que en la sección PDO y en la fila de 'PDO drivers' había un mensaje 'no value'.
La instrucción de consola 'php -m' me decía que tenía los módulos PDO correspondientes bien cargados, ¿qué estaba mal?
Planteamiento:
El problema no venía de Propel, en todo caso, sería una incorrecta configuración de PDO, pero revisando el sitio oficial de PHP y MySql, pues era la BBDD con la que estaba trabajando, y viendo que los módulos PDO y pdo_mysql estaban cargados correctamente, el origen tenía que ser mi servidor Apache.
Solución:
Revisé la configuración que hay que hacer para instalar PHP5 con Apache. Tenía las siguientes líneas:
LoadModule php5_module "C:\php5.3.8\php5apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php
pero, me faltaba la que solucionaría este problema:
añadir al final de httpd.conf la siguiente instrucción
PHPIniDir "c:/php5.3.8"
que es el directorio donde tengo alojado mi PHP.
Después no hay olvidarse de reiniciar Apache.