Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

consulta PDO

Estas en el tema de consulta PDO en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola chicos, Utilizo el metodo $dbh->prepare y no me ha dado problemas hasta tener que introducir el nombre de la tabla dinamicamente Lo intento de ...
  #1 (permalink)  
Antiguo 27/06/2008, 09:48
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
consulta PDO

Hola chicos,

Utilizo el metodo $dbh->prepare y no me ha dado problemas hasta tener que introducir el nombre de la tabla dinamicamente

Lo intento de esta manera que supone que es lo logico, pero no funciona

Código PHP:
$stmt $dbh->prepare("UPDATE table = :table SET status = :status WHERE login = :login");
         try {
         
$stmt ->execute(array(':table' => $table ':status' => $status':login' => $login)); 
lo que da error exactamente es table = :table

Ni tampoco asi

Código PHP:
$stmt $dbh->prepare("UPDATE :table SET status = :status WHERE login = :login"); 
Como incluyo el nombre de tabla dinamicamente? Lo recibo de otro metodo que devolve el valor correcto.

El catch me devuelve el siguente error


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 'table = 'companies' SET status = 'not active' WHERE login = 'test'' at line 1

Gracias a todos.
  #2 (permalink)  
Antiguo 27/06/2008, 11:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: consulta PDO

Hola viktoria,

El problema es que cuando usas prepare para escapar los datos, automáticamente te pasa los datos como strings, y para que el nombre de la tabla sea dinámico debe de ir entre backticks, por lo que no puedes pasar la tabla por el prepare, lo único que puedes hacer es algo así:
Código PHP:
$stmt $dbh->prepare("UPDATE `$table` SET status = :status WHERE login = :login"); 
Saludos.
  #3 (permalink)  
Antiguo 28/06/2008, 12:35
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: consulta PDO

Muchissimasa gracias!

Yo lo puse asi, pero claro no lo escapamos del todo entonces.
Tampoco es cuestion de seguridad, pero es un punto a mejorar!.

Un cordial saludo, Victoria.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:21.