Antes que nada, gracias GatorV por tu respuesta
Respecto al
error 1, ¡correcto! Ese era el problema. Ya está solucionado.
Ahora tras solventar éste, me sale un nuevo error que diría se relaciona con el error 2 que comentaba más arriba:
Fatal error: Uncaught exception 'PDOException' with message '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 '?' at line 1' in ->ruta física al archivo y linia<-, dónde dicha línea es:
Código PHP:
$command = $this->_db->prepare( $query );
y $query es:
Código PHP:
$query = "SHOW FIELDS FROM ?";
Mi versión de PHP es la 5.1.6, y tengo instalados los drivers de PDO para mysql y pgsql. La versión de MySQL es la 5.0.37. El servidor funciona bajo unix.
He estado mirando la página de
pdo->prepare en php.net y he probado esta otra forma de hacerlo:
Código PHP:
$query = "SHOW FIELDS FROM :tabla";
$command = $this->_db->prepare( $query, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY) );
$command->execute( array( 'tabla' => $this->table ) );
... pero con los mismos resultados. Es raro porque el método prepare devuelve FALSE si no se puede preparar la declaración (statement) que luego ejecutrará el método execute, si no que me da el error directamente.
Si pruebo de poner la tabla "Automoviles" como hacía antes, sí que prepara correctamente la declaración, pero luego me encuentro con un error al hacer:
Código PHP:
$command->fetch()
El error dice:
Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2053 '
Al haber resuelto el problema con setAttribute el objeto PDO me lanza excepciones que antes no lanzaba. Creo que tiene pinta de ser un problema de configuración, que afecta tanto al método
prepare como al
fecth.
He googleado un poco buscando sobre estos números de error y lo único que he encontrado ha sido con el tema de la codificación (yo utilizo UTF-8) pero tras cambiar mi dreamweaver a Europeo Occidental sigo con el mismo problema.
Estoy estancado. ¿A alguien se le ocurre algo?
Gracias por la ayuda.