Foros del Web » Programando para Internet » PHP »

(Consulta) Funcion insertar a mySQL con arrays como parametros

Estas en el tema de (Consulta) Funcion insertar a mySQL con arrays como parametros en el foro de PHP en Foros del Web. Hola a todos. Hice esta función: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original // Insertar Novedades a la base de datos function insertar ( $table = ...
  #1 (permalink)  
Antiguo 13/04/2011, 04:42
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
(Consulta) Funcion insertar a mySQL con arrays como parametros

Hola a todos.

Hice esta función:

Código PHP:
Ver original
  1. // Insertar Novedades a la base de datos
  2. function insertar($table = null, $columnas = null, $valores = null) {
  3.     $que = "";
  4.     //  Recorro Arrays
  5.     #   Columnas
  6.     foreach ($columnas as $clave => $valor) {
  7.         $que .= "INSERT INTO $table ($valor)";
  8.     }
  9.     #   Valores
  10.     foreach ($valores as $key => $value) {
  11.         $que .= "VALUES ('$value')";
  12.     }
  13.     $insert = mysql_query($que);
  14.    
  15.     return $insert;
  16. }

El array 1 trae: columnaNombreColumnaNombre2

El array 2 trae: valor1Valor2

Quiero hacer esto:

Array 1 = columnaNombre, ColumnaNombre2

Array 2 = valor1, Valor2

AL pasar arrays creo que debería separar por comas para que se inserte como corresponde en la base de datos. pero si pongo algo así: $variable . "," el último valor también tiene coma al final y es cómo que se espera otro valor.

¿Cómo deberpia poner la coma para qque no quede asÍ:

Array 1 = columnaNombre, ColumnaNombre2,

Array 2 = valor1, Valor2,

Necesito hacer esto:

Array 1 = columnaNombre, ColumnaNombre2

Array 2 = valor1, Valor2

Espero que se entienda, saludos.
  #2 (permalink)  
Antiguo 13/04/2011, 05:12
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: (Consulta) Funcion insertar a mySQL con arrays como parametros

Lo he resuelto parcialmente así:

Código PHP:
Ver original
  1. function insertar($table = null, $columnas = null, $valores = null) {
  2.        
  3.         $insert = mysql_query("INSERT INTO $table ($columnas[1], $columnas[2]) VALUES ('$valores[1]', '$valores[2]')");
  4.    
  5.     return $insert;
  6. }

Pero hay alguna forma de evitar poner manualmente $columnas[1], $columnas[2], ...
???

Gracias, Saludos.

EDIT:

Utilicé implode() para columnas y anda porque no lleva comillas pero el problema esta en VALUE que lleva comillas simples e implode me pone la coma dentro de las comillas simples

Código PHP:
Ver original
  1. $insert = mysql_query("INSERT INTO $table ($columnas) VALUES ('$values[1]', '$values[2]')");

Última edición por opzina; 13/04/2011 a las 06:11
  #3 (permalink)  
Antiguo 13/04/2011, 07:27
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: (Consulta) Funcion insertar a mySQL con arrays como parametros

SOLUCIONADO:

Código PHP:
Ver original
  1. // Insertar arrays  a la base de datos
  2. function insertar($table = null, $columns = null, $values = null) {
  3.        
  4.             $columnas = implode($columns, ", ");
  5.            
  6.             $valores =  implode("', '",array_map('mysql_escape_string', $values));
  7.            
  8.             $insert = mysql_query("INSERT INTO $table ($columnas) VALUES ('$valores')");
  9.    
  10.     return $insert;
  11. }

Última edición por opzina; 13/04/2011 a las 07:57

Etiquetas: arrays, funcion, mysql, parametros
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 01:18.