Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Insertar una gran cadena de caracteres a un campo con LongText

Estas en el tema de Insertar una gran cadena de caracteres a un campo con LongText en el foro de PHP en Foros del Web. El dia de Hoy recurro a ustedes por que tengo un problema que parece muy simple, pero no encuentro la solucion... Necesito Insertar ó actualizar ...
  #1 (permalink)  
Antiguo 13/02/2013, 13:46
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Mensaje Insertar una gran cadena de caracteres a un campo con LongText

El dia de Hoy recurro a ustedes por que tengo un problema que parece muy simple, pero no encuentro la solucion...

Necesito Insertar ó actualizar una gran cadena de caracteres a un campo en mysql, para ello ocupo el tipo de campo "LONGTEXT" que segun entiendo guarda hasta 4gb de información...

Esta es mi tabla en myql...

folio_inicial - varchar(2)
num_inicial - int(7)
folio_final - varchar(2)
num_final - int(7)
nombre_archivo - varchar(100)
ruta - varchar(250)
barrido - longtext

y he probado de mil formas cargar la informacion y no he podido, brevemente describo lo que he intentado...

Directamente en PhpMyadmin importando el archivo de texto como *.csv me envia este error:

Request-URI Too Large

The requested URL's length exceeds the capacity limit for this server.
Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 Server at localhost Port 80

Este error tambien lo envia al enviar el campo por un formulario con GET.

He intentado con POST pero al manejar yo Xampp me envia que el index del la variable no existe al recoger los datos con $_POST...; ademas con IIS no me envia ningun valor pero tampoco inserta ni actualiza la tabla.

Mis codigos son los siguientes:

para enviar el Folmulario:

<form name="Form2" method="GET" action="guardar.php" enctype="text/plain" id="Form2">

<textarea name="barrido" id="barrido" rows="12" cols="43"><?php echo $barrido; ?></textarea>

<input type="hidden" value="<?php echo $campo; ?>" name="campo" > //envio el valor de otra BD

<input type="submit" id="Button2" name="" value="Submit" >

</form>

Para Guardar lo Enviado:
<?php
include("conect.php"); //conexion a BD

$dato = $_REQUEST['barrido'];
$campo = $_REQUEST['campo'];

$insert = mysql_query("update folio_certificados SET barrido='$dato' where num_inicial='$campo' ; ", $link);
if(!$insert) { die("Fallo en la insercion de registro en la Base de Datos: " . mysql_error()); }
}

?>

Cualquier idea o sugerencia sera Bienvenida, Gracias...
  #2 (permalink)  
Antiguo 13/02/2013, 13:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Insertar una gran cadena de caracteres a un campo con LongText

Lo que veo que está definitivamente mal es usar enctype, ¿o sabes perfectamente lo que eso provoca?

De ahí en fuera debería funcionar con POST, sin problemas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/02/2013, 17:54
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Insertar una gran cadena de caracteres a un campo con LongText

Efectivamente pateketrueke, tenias razon con el enctype, realice las pruebas con IIS y POST y al primer termino me envio el mensaje de error que el max_allowed_packet no permitia la carga de los archivos, asi que lo modifique para que me aceptara hasta 1024mb y al intentar cargar de nuevo la informacion con POST en IIS, me sale el mensaje de:

MySql Server has gone Away... lo mismo que al tratar de cargar con el PhpMyadmin...

Presisamente se que el Apache, solo maneja 4000 caracteres en URL, IIS 16000 caracteres y los Navegadores tambien restringen el envio de caracteres... pero es incongruente que el MySql el campo LongText soporta 4gb de Informacion, como los lleno, como los utilizo si no puedo enviar mas que eso por GET o POST...

Gracias y sigo en Busqueda de la Respuesta

Última edición por darkddavis; 13/02/2013 a las 18:03
  #4 (permalink)  
Antiguo 18/02/2013, 05:34
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Insertar una gran cadena de caracteres a un campo con LongText

Y Al fin encontre la Solucion... era un poco obvia, pero no se me habia ocurrido...

Cuando se tiene una BD enorme o insercion de campos muy grandes, lo mejor es olvidarse de los navegadores y servidores web y recurrir a lo basico, la Consola de MySql.

Les dejo 2 Ejemplos que me ayudaron mucho para entender como se puede importar BD enormes o una gran cadena de caracteres a mysql sin problema.

http://eparreno.com/2008/02/20/importar-datos-de-un-archivo-csv-a-una-tabla-mysql
http://www.forosdelweb.com/f86/importar-csv-mysql-466832/

Gracias

Etiquetas: cadena, caracteres, mysql
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:52.