Foros del Web » Programando para Internet » PHP »

Problemas con INSERT desde PHP

Estas en el tema de Problemas con INSERT desde PHP en el foro de PHP en Foros del Web. Buenas Tardes! Les comento mi problema: Yo tengo un archivo csv con cierta cantidad de datos, lo que hago es abrir dicho archivo y modificar ...
  #1 (permalink)  
Antiguo 03/08/2018, 14:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 0
Problemas con INSERT desde PHP

Buenas Tardes! Les comento mi problema:

Yo tengo un archivo csv con cierta cantidad de datos, lo que hago es abrir dicho archivo y modificar unos campos que estan mal cargados (Telefonos con espacios, guiones, etc..) y luego los tengo que cargar en mi base de datos de postgress:


Código PHP:
#!/usr/bin/php
<?php
// Me conecto al pgsql
$conectarse pg_connect(******);

// Reviso si la conexion fue exitosa sino devuelvo un error
if (!$conectarse) {die("Error de Conexion!: " pg_last_error());}


// --- FUNCIONES --- ///

// Reemplaza los guiones bajo por espacios.
function sacar_guiones($var){
$reemplazo=str_replace("_"" "$var);
return 
$reemplazo;
}

// Toma todo el string y solo deja los numeros y en caso de que no devuelva nada (devuelve 0 si no hay numeros) lo reemplaza por nada.
function telefono($numero) {
    
$r intval(preg_replace('/[^0-9]+/'''$numero), 10);
    if(
$r == 0){$r "";}
return 
$r;
}

// --- FIN FUNCIONES --- ///



// --- PROGRAMA PRINCIPAL --- ///


// Ignora las advertencias de PHP
error_reporting(0);

// Abro el archivo CSV en modo lectura
$file fopen('datos-ejemplo.csv''r');

// Creo una bandera que utilizo para ignorar la primer vuelta asi no me guarda los cabezales
$band 0;


// Recorro el archivo
while (($line fgetcsv($file)) !== FALSE) {
    
    
// Consulto si es el primer ingreso, para evitar leer las cabeceras, si lo es cambio la bandera a 1    
    
if($band != )
        {

            
// Almaceno los datos recolectados
            
$RAZON=$line[14];    
            
$LOCALIDAD=$line[16];    
            
$EMAIL=$line[15];    
            
$FECHADEREGISTRO=$line[1];
            
$TELEFONO1=telefono($line[12]);
            
$TELEFONO2=telefono($line[13]);
    
            
// Genero la consulta SQL
            
$query "INSERT INTO tabla_datos (razon) VALUES ('" .$RAZON"')";
    
            
// Ejecuto la consulta
            
$result pg_query_params($conectarse$query);

            
// Verifico si la consulta se llevo a cabo correctamente, sino aviso
            
if (!$result) die("\nError in SQL query: " pg_last_error() . "\n");
        }
    else
        
$band 1;

    
// fin del if    

// end-while


// Cierro el archivo
fclose($file);


// Termino la conexion
pg_close($conectarse);
?>
La conexion se hace correctamente, pero a la hora de hacer un insert me da el siguiente error: "Error in SQL query:" es decir, el mensaje de error que tengo por si falla la query pero no me da informacion de porque falla

Alguien sabe que puede ser lo que este fallando? estuve todo el dia tratando de hacerlo andar y no pude =(

Gracias!
  #2 (permalink)  
Antiguo 03/08/2018, 15:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas con INSERT desde PHP

Estás usando pg_query_params(), pero no envías los parámetros.

Código PHP:
Ver original
  1. // Genero la consulta SQL
  2.             // NOTA: Entre comillas simples
  3.             $query = 'INSERT INTO tabla_datos (razon) VALUES ($1)';
  4.    
  5.             // Ejecuto la consulta
  6.             $result = pg_query_params($conectarse, $query, array($RAZON));
  7.  
  8.             // Verifico si la consulta se llevo a cabo correctamente, sino aviso
  9.             if (!$result) die("\nError in SQL query: " . pg_last_error() . "\n");
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 06/08/2018, 07:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problemas con INSERT desde PHP

Cita:
Iniciado por Triby Ver Mensaje
Estás usando pg_query_params(), pero no envías los parámetros.

Código PHP:
Ver original
  1. // Genero la consulta SQL
  2.             // NOTA: Entre comillas simples
  3.             $query = 'INSERT INTO tabla_datos (razon) VALUES ($1)';
  4.    
  5.             // Ejecuto la consulta
  6.             $result = pg_query_params($conectarse, $query, array($RAZON));
  7.  
  8.             // Verifico si la consulta se llevo a cabo correctamente, sino aviso
  9.             if (!$result) die("\nError in SQL query: " . pg_last_error() . "\n");
Probe de esta forma y me hace el insert vacio!, por las dudas antes de llegar a insert le hice un echo a la variable para ver si contenia datos y ademas revise qeu tipo de variable es y me da que es string, lo cual seria correcto...que es lo que falla en la logica?

Última edición por Juan228; 06/08/2018 a las 08:04
  #4 (permalink)  
Antiguo 06/08/2018, 13:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problemas con INSERT desde PHP

EDIT: Si intento hacer el insert con int si me lo toma, el problema esta en el date y el string

Etiquetas: csv, insert, postgresql
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 04:55.