Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2014, 19:17
nimaki25
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 14 años
Puntos: 1
parametros en consulta Insert PDO

hola a todos estimados, espero que tengan un buen dia, pasaba por aca a pedir su ayudita, resulta que tengo un formulario donde hago un insert a una bd mysql, en este form tengo que cargar 5 imagenes por registro, guardar las rutas en la bd y mover las imagenes aun directorio. Con el siguiente codigo me funciona sin problmas el mover y hacer el insert:

Código PHP:
if(isset($_POST['enviar']))
{
    if(isset(
$_FILES['fotosavisos']))
     {
          
$rutas = array(''''); // Inicializas con dos rutas vacías
             //Subida de Archivos
            
foreach($_FILES['fotosavisos']['tmp_name'] as $key => $nombresTemporal)
            {     
//Nombre del Arreglo generado con el input fotosavisos
                
$nombres=$_FILES['fotosavisos']['name'][$key];
                
//Nombre Temporal de la Imagen (Generada por el servidor)
                
$nombresTemporal=$_FILES['fotosavisos']['tmp_name'][$key];
                        
//Tamaño de la Imagen
                
$tamaño=$_FILES['fotosavisos']['size'][$key];
                        
//Tipo de Imagen
                
$tipo=$_FILES['fotosavisos']['type'][$key];
               
                
//Ruta en Servidor
                
$rutaFinal="imagenes_avisos/".$nombres;
                       
                   
//Titulo del Aviso
                
$titulo_aviso htmlspecialchars($_POST["titulo_aviso"]);
                
$categoria_aviso htmlspecialchars($_POST["categoria_aviso"]);
                
$tipo_aviso htmlspecialchars($_POST["tipo_aviso"]);
                
$comuna htmlspecialchars($_POST["comuna"]);
                
$aviso_completo htmlspecialchars($_POST["aviso_completo"]);
                
$valor_producto htmlspecialchars($_POST["valor_producto"]);
                
$fecha_publicacion date('Y-m-d'strtotime($_POST['fecha_publicacion']));
                
$nombre htmlspecialchars($_POST["nombre"]);
                
$telefono_celular htmlspecialchars($_POST["telefono_celular"]);
                
$telefono_fijo htmlspecialchars($_POST["telefono_fijo"]);
                
$direccion htmlspecialchars($_POST["direccion"]); 

            
//Movemos los Archivos al Servidor
            
move_uploaded_file($nombresTemporal,$rutaFinal);
              
            
// Actualizas la ruta correspondiente para este archivo
            
$rutas[$key] = $rutaFinal;
        

        }
//foreach  
               
                   
            //Insercion a la Base de Datos
            
$modelo= new Operaciones();
            
$modelo->insertInto="publicaraviso";
            
$modelo->insertColumns='titulo_aviso, categoria_aviso, tipo_aviso, comuna, aviso_completo, valor_producto, fecha_publicacion, nombre, 
            telefono_celular, telefono_fijo,direccion,img1, img2, img3, img4, img5'
//, img_1, img_2
            
$modelo->insertValues="'$titulo_aviso','$categoria_aviso','$tipo_aviso','$comuna','$aviso_completo','$valor_producto','$fecha_publicacion',
            '$nombre','$telefono_celular','$telefono_fijo','$direccion','$rutas[0]','$rutas[1]','$rutas[2]','$rutas[3]','$rutas[4]'"
;
            
$modelo->Insertar();
            
$mensaje$modelo->mensaje;        
     }    


lo que tengo que hacer es lo mismo pero usando este sistema de consulta, que es el que implemente finalmente para mi proyecto, y es el que utilizo para update, delete, etc:

Código PHP:

//Inserción de Datos en Base de Datos
        
function insertarAvisos(){
            
            try{
                
$query  ="INSERT INTO avisos (titulo_aviso,categoria_aviso,tipo_aviso,comuna,aviso_completo,valor_producto,nombre,telefono_celular,telefono_fijo,correo_electronico,direccion,img1,img2,img3,img4,img5)"//,img1,img2,img3,img4,img5 
                
$query .="VALUES(:titulo_aviso,:categoria_aviso,:tipo_aviso,:comuna,:aviso_completo,:valor_producto,:nombre,:telefono_celular,:telefono_fijo,:correo_electronico,:direccion,:rutas[0],:rutas[1],:rutas[2],:rutas[3],:rutas[4])"//,:rutas[0],:rutas[1],:rutas[2],:rutas[3],:rutas[4]
                //Preparamos la consulta
                
$stmt$this->con->prepare($query);
                
$stmt->bindParam(':titulo_aviso'$_POST['titulo_aviso'],PDO::PARAM_STR);
                
$stmt->bindParam(':categoria_aviso'$_POST['categoria_aviso'] ,PDO::PARAM_STR);
                
$stmt->bindParam(':tipo_aviso'$_POST['tipo_aviso'] ,PDO::PARAM_STR);
                
$stmt->bindParam(':comuna'$_POST['comuna'],PDO::PARAM_STR);
                
$stmt->bindParam(':aviso_completo'$_POST['aviso_completo'],PDO::PARAM_STR);
                
$stmt->bindParam(':valor_producto'$_POST['valor_producto']);       
                
$stmt->bindParam(':nombre'$_POST['nombre'] ,PDO::PARAM_STR);
                
$stmt->bindParam(':telefono_celular'$_POST['telefono_celular']);
                
$stmt->bindParam(':telefono_fijo'$_POST['telefono_fijo']);
                
$stmt->bindParam(':correo_electronico'$_POST['correo_electronico'] ,PDO::PARAM_STR);
                
$stmt->bindParam(':direccion'$_POST['direccion'] ,PDO::PARAM_STR);
                 
                
//Aca declaro las variables para las imagenes, 
                
$stmt->bindParam(':img1'$this->rutas[0]);
                
$stmt->bindParam(':img2'$this->rutas[1]);
                
$stmt->bindParam(':img3'$this->rutas[2]);
                
$stmt->bindParam(':img4'$this->rutas[3]);
                
$stmt->bindParam(':img5'$this->rutas[4]);

                
//Ejecutamos la Consulta
                
$stmt->execute();
                echo 
"Aviso Insertado con Exito en la Base de Datos";

                }catch(
PDOException $e){
                       echo 
$e->errorInfo;
                }
  
        }
//funcion InsertarAvisos 

mi pregunta es, sin hacer uso de imagenes hago perfecto el insert, pero no se como implementar el codigo que tengo del upload de imagenes a este formato de consulta, sobre todo teniendo en cuenta como declaro la recepcion de datos desde el post, y que las imagenes se almacenan en un array, o sea, como puedo implementar el primer codigo en este nuevo tipo de insert, de esta manera me sale el siguiente error:
Código PHP:
Warningmove_uploaded_file(imagenes_avisos/empresa computacion.jpg): failed to open streamNo such file or directory in C:xampphtdocsavisoscrudinsert.php on line 38

Warning
move_uploaded_file(): Unable to move 'C:\xampp\tmp\phpD558.tmp' to 'imagenes_avisos/empresa computacion.jpg' in C:xampphtdocsavisoscrudinsert.php on line 38

Warning
PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter numberparameter was not defined in C:xampphtdocsavisosIncfunciones.php on line 92
Aviso Insertado con Exito en la Base de Datos
Warning
move_uploaded_file(imagenes_avisos/tecnologia.jpg): failed to open streamNo such file or directory in C:xampphtdocsavisoscrudinsert.php on line 38

Warning
move_uploaded_file(): Unable to move 'C:\xampp\tmp\phpD578.tmp' to 'imagenes_avisos/tecnologia.jpg' in C:xampphtdocsavisoscrudinsert.php on line 38

Warning
PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter numberparameter was not defined in C:xampphtdocsavisosIncfunciones.php on line 92
Aviso Insertado con Exito en la Base de Datos 
//No hace insert, pero da por hecho que si 
Saludos a todos, agradesco desde ya su tiempo