load data infile desde PHP

pakoflorez
16 de Agosto del 2005
Un saludo.
¿Alguien tiene algun ejemplo de como utilizar la instruccion load data infile desde PHP?
Tengo que insertar un grupo grande de registros y segun he leido, esta instruccion es mas rápida que los comandos insert. He buscado información en varios lados sobre como usar la instruccion desde PHP y no doy con algun ejemplo que realmente me sirva. De antemano gracias.

pakoflorez
16 de Agosto del 2005
Ya di con la solucion y aprovecho para responderme a mi mismo , por si alguien se enfrenta al mismo problema que yo y le sirve de algo. Resulta que windows entiende la ruta del archivo de texto que contiene los datos de la siguiente forma:
'\\Servidor\sistema\archivodedatos.txt'
por lo tanto, en php hay que poner una diagonal adicional por cada diagonal, quedando la instruccion en php completa de la siguiente forma:

$Sql="LOAD DATA INFILE '\\\\Servidor\\sistema\\archivoxyz.txt' INTO TABLE detalles_listas FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'";
$result = mysql_query($Sql,$link) or die("Error al insertar registros");

y funciona perfecto!

eduardoquiroz
16 de Agosto del 2005
y con un box para subir un archivo desde el disco duro como sería?

gabriel
16 de Agosto del 2005
Eduardo despues de mucho buscar encontre lo que postearon .... y tb tenia el mismo drama pero lo logre....
con esto...

/* campturo nombre de la tabla */
$Tb = $_POST["tabla"];
/*asigno nombre del archivo temporal */
$Tmparch = $HTTP_POST_FILES['archivo']['tmp_name'];
/* luego aqui va lo interesante mire el archivo ldi_check.php de MyAdmin */
$field_terminater = ";";
$line_terminator = "n";
$SQLUP = 'LOAD DATA LOCAL INFILE \'' . $Tmparch . '\'';
$SQLUP .= ' INTO TABLE ' . $Tb ;
$SQLUP .= ' FIELDS TERMINATED BY \'' . $field_terminater . '\'';
$SQLUP .= ' LINES TERMINATED BY \'' . $line_terminator . '\'';
require_once("../../lib/conex.phtml");
@$link=Conectarse();
$result=mysql_query($SQLUP,$link);
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;

espero te funcione ....