Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] update de registros desde php, pdo

Estas en el tema de update de registros desde php, pdo en el foro de PHP en Foros del Web. estimados, saludarlos a todos, pasaba nuevamente por este gran foro para exponerles lo siguiente, necesito hacer update de algunos campos , utilizo la siguiente funcion: ...
  #1 (permalink)  
Antiguo 05/08/2014, 20:44
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 5 meses
Puntos: 1
update de registros desde php, pdo

estimados, saludarlos a todos, pasaba nuevamente por este gran foro para exponerles lo siguiente, necesito hacer update de algunos campos , utilizo la siguiente funcion:
Código PHP:
 // Funcion Actualizar Avisos (via cod_aviso)
        
function actualizaAviso($cod_aviso=null){
             
             
$cod_aviso=(int)$cod_aviso;
            
            if(empty(
$cod_aviso) OR !$cod_aviso){
                
header('location:../Admin/login.php');   
            }

             
//print_r($cod_aviso);
            
            //Preparamos la Consulta
            
$query="UPDATE 
                   avisos 
                   SET
                   comuna = :comuna,
                   titulo_aviso = :titulo_aviso,
                   categoria_aviso = :categoria_aviso,
                   tipo_aviso = :tipo_aviso,
                   valor_producto = :valor_producto,
                   aviso_completo = :aviso_completo,
                   telefono_celular = :telefono_celular,
                   telefono_fijo = :telefono_fijo,
                   correo_electronico = :correo_electronico,
                   direccion = :direccion
                   WHERE cod_aviso = :cod_aviso"
;
            
            
//Preparamos la consulta
            
$stmt=$this->con->prepare($query);
            
            
            
$stmt->bindParam(':comuna',$_POST['comuna']);
            
$stmt->bindParam(':titulo_aviso',$_POST['titulo_aviso']);
            
$stmt->bindParam('categoria_aviso',$_POST['categoria_aviso']);
            
$stmt->bindParam(':tipo_aviso',$_POST['tipo_aviso']);
            
$stmt->bindParam(':valor_producto',$_POST['valor_producto']);
            
$stmt->bindParam(':aviso_completo',$_POST['aviso_completo']);
            
$stmt->bindParam(':telefono_celular',$_POST['telefono_celular']);
            
$stmt->bindParam('telefono_fijo',$_POST['telefono_fijo']);
            
$stmt->bindParam(':correo_celectronico',$_POST['correo_electronico']);
            
$stmt->bindParam(':direccion',$_POST['direccion']);
            
            
            
//ejecutamos la consulta
           // $stmt->execute();
            // Execute the query
        
if($stmt->execute()){
            echo 
"actualizadoooo";
        }else{
            die(
'no');
        }
            
             
         }
//Funcion actualizaAviso 
y en mi archivo update.php (que carga en el formulario los campos segun el id que viene via get) lo tengo asi:
Código PHP:
<?php
session_start
();

require_once 
'../Inc/funciones.php';


//Recibo el cod_aviso que viene desde la pagina
$cod_aviso strip_tags($_GET['cod_aviso']);


//Instanciamos
$aviso = new Avisos();

$avisos=$aviso->detalleAviso($cod_aviso);

//Cargo el registro en sus campos del formulario
foreach($avisos as $row){
    
    
$comuna         =   $row['comuna'];
    
$titulo_aviso   =   $row['titulo_aviso'];
    
$categoria      =   $row['categoria_aviso'];
    
$tipoaviso      =   $row['tipo_aviso'];
    
$valor          =   $row['valor_producto'];
    
$detalleaviso   =   $row['aviso_completo'];
    
$celular        =   $row['telefono_celular'];
    
$fijo           =   $row['telefono_fijo'];
    
$correo         =   $row['correo_electronico'];
    
$direccion      =   $row['direccion'];
}

//actualizacion
if(isset($_POST['actualizar'])){
     
            
//$comuna=$_POST['comuna'];
            //$titulo_aviso=$_POST['titulo_aviso'];

    
$aviso->actualizaAviso($cod_aviso);
}


//validacion session

//formulario y codigo html....

?>
el hecho es que al ejecutar me sale lo siguiente:
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in

lo cual segun he estado viendo, es por que me estaria faltando un parametro, pero me cuadran todos....

agradecido desde ya por su ayuda
  #2 (permalink)  
Antiguo 06/08/2014, 01:04
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: update de registros desde php, pdo

Código PHP:
Ver original
  1. WHERE cod_aviso = :cod_aviso";
  2. $stmt->bindParam('categoria_aviso',$_POST['categoria_aviso']);
  3. $stmt->bindParam('telefono_fijo',$_POST['telefono_fijo']);
  4. $stmt->bindParam(':correo_celectronico',$_POST['correo_electronico']);

Revisa en detalle esas 4 lineas.

En las ultimas 3 tenes errores de sintaxis, y en la primera haces referencia a un campo que no bindeas
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 06/08/2014, 18:58
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: update de registros desde php, pdo

muchas gracias por tu tiempo @nsd , asi es, tenia esos errores que me comentaste y analizando el codigo encontre un error en la consulta igual, corregido y funcionando....errores de novato, tontos pero creo que todos en algun momento los tuvieron ejejeje...

saludos cordiales

Etiquetas: actualizacion, funcion, pdo, update
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 05:55.