Foros del Web » Programando para Internet » PHP »

Problema con PDO.

Estas en el tema de Problema con PDO. en el foro de PHP en Foros del Web. Hola! Espero que me podais ayudar.Nunca habia trabajado con PDO en php y en este momento necesito un poco de vuestra ayuda: El error esta ...
  #1 (permalink)  
Antiguo 12/04/2012, 11:03
 
Fecha de Ingreso: abril-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Exclamación Problema con PDO.

Hola!
Espero que me podais ayudar.Nunca habia trabajado con PDO en php y en este momento necesito un poco de vuestra ayuda: El error esta al hacer el update.
1000 gracias por vuestro tiempo y ojala alguien se de cuenta de mi fallo.

tengo este error:
Código HTML:
function modificaciones($campo,$value,$id)
{   
    echo $campo.$value.$id;(imprimi estos campos aqui para ver si estaban llegando los datos correctamente)
    global $pdo;
    $stmt = $pdo->prepare('UPDATE invitacion SET :campo = :value WHERE id = :id');
    $stmt->execute(array(':campo'=>$campo,':value'=>$value,':id'=>$id));
}

y estos son los parametros que le mando anteriormente:
if (isset($_POST['id']))
{
  $data  = explode("-",$_POST['id']);
  $campo = $data[0]; // nombre del campo
  $value = $_POST['value']; // valor por el cual reemplazar
  $id    = $data[1]; // id del registro
  $edicion=modificaciones($campo,$value,$id);
}
  #2 (permalink)  
Antiguo 12/04/2012, 12:01
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Problema con PDO.

Cuál es el error? Qué valor tienen las variables? Cuál es el resultado esperado? etc, etc, etc...
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 12/04/2012, 12:45
 
Fecha de Ingreso: abril-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con PDO.

Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\yotoco\admin\functions.php on line 27

te adjunto la linea 27 y 28.
Código PHP:
$stmt $pdo->prepare('UPDATE invitacion SET :campo = :value WHERE id = :id');
    
$stmt->execute(array(':campo'=>$campo,':value'=>$value,':id'=>$id)); 
Los parametros que le mando:
$campo,$value,$id
si hago un echo en la funcion modificaciones de estas tres variables me imprime los parametros que le mando que son:
emailsantiago73
email vendria siendo el campo,santiago el valor y id el id

El resultado esperado es que no me tire ese prepare y me haga el insert normal.
Los valores llegan hasta la funcion modificaciones por medio de:
Código PHP:
$campo $data[0]; // nombre del campo
$value $_POST['value']; // valor por el cual reemplazar
$id    $data[1]; // id del registro
$edicion=modificaciones($campo,$value,$id); 

espero que haya quedado mas claro y puedas ayudarme.Gracias por tu tiempo
  #4 (permalink)  
Antiguo 12/04/2012, 12:47
 
Fecha de Ingreso: abril-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con PDO.

De esta otra forma si me funciona,pero quiero hacerlo mediante PDO
Código PHP:
$cn mysql_connect("localhost","root","");
mysql_select_db("yotoco"$cn);
$query mysql_query("UPDATE invitacion SET ".$campo." = '".$value."' 
                            WHERE id = '"
.$id."'"); 
  #5 (permalink)  
Antiguo 12/04/2012, 13:05
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: Problema con PDO.

Acabo de sear esto de google. Quiza te sirva o te de ideas.
* $actualiza = $db->prepare('UPDATE items SET item = :item WHERE id_item = :id');
$actualiza->bindParam(':item', $item);
$actualiza->bindParam(':id', $id); *
$actualiza->execute();
  #6 (permalink)  
Antiguo 12/04/2012, 13:15
 
Fecha de Ingreso: abril-2012
Ubicación: Medellin
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con PDO.

ese bindparam me ha puesto a pensar.
Que me a puesto a pensar?Pues pienso como hace PDO para saber a que le pone ' ' y a que no le pone comillas.Tal vez ese bind param lo que hace es decirle al id y al item que no les ponga comillas.Pero ire a buscar a google.
  #7 (permalink)  
Antiguo 12/04/2012, 22:12
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Problema con PDO.

Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\yotoco\admin\functions.php on line 27 el error que posteas no tiene nada que ver con binding o parámetros. El fallo es que el objeto no se ha creado,puede ser que lo hayas hecho mal, o bien no tienes la extensión instalada.
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: conexiondb, mysql, pdo
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 22:44.