script de PHP para la importación de datos csv en mysql

19 de febrero 2007

Este es un simple script que te permitirá importar datos CSV en su base de datos. Esto es muy útil, ya que basta con editar los campos correspondientes, subirlo junto con el archivo csv y lo llaman de la web y que se encargará del resto.

Le permite especificar el delimitador en este archivo csv, si se trata de un estado de coma, una ficha, etc También le permite elegir el separador de línea, le permite guardar la salida a un archivo (conocido como vertedero de datos SQL).

También le permite incluir un campo vacío al principio de cada fila, que suele ser un número entero de incremento automático de clave principal.

Este script es útil sobre todo si usted no tiene phpmyadmin, o si no deseas que la molestia de entrar y prefieren una solución de unos pocos clics, o simplemente son un tipo de comandos.
Sólo asegúrese de que la tabla ya está creada antes de tratar de volcar los datos.
Por favor envíe sus comentarios, si tienes cualquier informe de error.

Descargar archivo aquí

Etiquetas:
  1. Sistema de Ruleta
    24 de mayo 2011 a las 20:09

    gracias por información

  2. De trabajo y analizar archivos de texto CSV y PHP
    15 de mayo 2011 a las 17:52
    # 2
  3. Joln
    11 de mayo 2011 a las 07:52

    Gran guión! TNX mucho

  4. Clases de la CNA de Texas
    11 de mayo 2011 a las 07:10

    No tengo palabras para apreciar este post ... .. Realmente estoy impresionado de este post .... La persona que crear este post era una gran persona .. gracias por compartir esto con

    nosotros.

  5. CNA clases Hawaii
    11 de mayo 2011 a las 07:07

    Si ... eso es realmente un mensaje informativo. Soy nuevo blogger sería información útil que para mí. Gracias por compartir!

  6. Con plumas del búho
    08 de mayo 2011 a las 12:19

    Script funciona muy bien para mí más o menos como está. Muchas gracias!

  7. Umair
    02 de mayo 2011 a las 07:39

    Hola ...
    Estoy frente a un problema, cuando uso esta, la que muestra un error diciendo que
    "Obsoletas: La función split () es obsoleta en C: \ wamp \ www \ prueba1 \ simplecsvimport.php en la línea 64
    El archivo no se puede escribir, comprobar los permisos. Se encontraron un total de 41 registros en este archivo csv. "

    Respuesta Por favor, ¿qué tiene de malo!
    gracias de antemano!

  8. justkid
    07 de abril 2011 a las 10:25

    Estoy muy confundido con el código!
    pero no voy a intentar hasta!
    Por cierto, ¿cómo el código html o campo a llamar a este código

  9. Jorge Dias
    14 de marzo 2011 a las 19:01

    Gracias, importador csv muy buena.
    Pero encontré un pequeño problema, que solo funciona con el archivo csv con la estructura: "campo1", "campo2", "campo3", etc, pero me hava un archivo CSV de esta manera: campo1, campo2; filed3, etc

    Lo único que puede cambiar es de $ fieldseparator pero ¿cómo puedo 'decir' la secuencia de comandos que el archivo no uso "(delimitador de campo)?
    Mi ideia fue un cuadro combinado con $ fieldseparator (o ;) y otro con $ fielddelimiter (o nada)

    Gracias de antemano.

  10. Oxidado
    03 de febrero 2011 a las 14:56

    Cualquier idea de cómo obtener esta secuencia de comandos para trabajar en los campos que están encerrados entre comillas dobles para que los campos con comas en ellas no se lea como una nueva entrada?

    Tengo datos que incluye las comas como los montos en dólares y una sección de comentarios donde los usuarios podrían haber utilizado una coma. Necesito todo el campo importados y este script los trata como los nuevos campos.

  11. qwewe
    23 de enero 2011 a las 14:56

    @ Marcos Cloyd
    "Address = VALORES (dirección)
    Me sale un error aquí como Error de análisis: error de sintaxis, inesperado '='

  12. ronbowalker
    15 de enero 2011 a las 17:54

    @ Joofoo
    He cargado el código pero no obtengo información actualizada sobre la base de datos MySQL ...

    CSV contiene:
    Encabezado - nombre de usuario>, contraseña, mensaje, correo electrónico, imagen, fecha
    Row2 -> Bill, amigo,,,,
    Jane>, chica,,,, - Row3
    Row4 -> David, hijo,,,,

    Y aquí está el código ...:
    <? Php

    / / Set-up del archivo iphonelogin.php en "remoto" carpeta ...
    / * Conectarse a la db * /
    / / $ Link = mysql_connect ('ronbo.db.6405862.hostedresource.com', 'ronbo', 'Pepper0689') or die ("No se puede conectar a la base de datos ');
    / / Mysql_select_db ('ronbo', $ enlace) or die ("No se puede seleccionar la base de datos ');

    / / http://www.ihappyapps.com/DataFolder/loader.php
    /********************************/
    / * Código en http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Editar debajo de las entradas para reflejar los valores apropiados
    /********************************/
    $ Databasehost = "dbhost";
    $ DatabaseName = "nombre";
    $ DatabaseTable = "mesa";
    $ Databaseusername = "nombre de usuario";
    $ Databasepassword = "contraseña";
    fieldseparator $ = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "spreadsheet.csv";
    /********************************/
    addauto $ = 1;
    /********************************/
    $ Guardar = 0;
    $ Archivo de salida = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "El servidor tiene su petición, pero el archivo CSV que desea cargar en la base de datos no está presente ... .. \ n";
    salida;
    }

    $ Chunksize = 1 * (1024 * 1024);
    $ File = fopen ($ csvfile, "rb");
    if (! $ archivo) {
    echo "Error al abrir el archivo de datos. \ n";
    salida;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "El archivo está vacío. \ n";
    salida;
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) or die (mysql_error ());

    líneas = $ 0;
    consultas $ = "";
    while (! feof ($ archivo)) {
    $ Csvline = fgets ($ archivo, $ chunksize);

    líneas $ + +;
    if ($ líneas <2) continuar;

    $ Linea = trim ($ csvline, "\ t");

    la línea $ = str_replace ("\ r ","",$ línea);

    /************************************************* ************************************************** *********
    Esta línea se escapa el carácter especial. quitarlo si las entradas ya están escapó en el archivo csv
    ************************************************** ************************************************** ********/
    $ Linea = str_replace ("'"," \ '", $ linea);
    /************************************************* ************************************************** ********/

    $ LineArray = explode ($ fieldseparator, $ linea);

    $ Linemysql = LineArray ("','",$ implosión);

    $ Consulta de inserción "en $ valores = DatabaseTable ('$ linemysql');";

    if ($ guardar) $ consulta .= $ consulta. "\ N";

    @ Mysql_query ($ consulta);
    echo $ líneas "\ n".;
    }
    fclose ($ archivo);

    líneas -= $ 3;

    @ Mysql_close ($ con);

    <>

    Me vendría bien algo de ayuda para conseguir que esto funcione ...
    Ron

  13. joofoo
    11 de enero 2011 a las 11:16

    @ Roy
    He modificado el script, por lo que consume mucha menos memoria al procesar archivos de gran tamaño (golpear límite de memoria de PHP cuando traté de utilizarlo en un archivo CSV 100mb). Los cambios son los siguientes:


    $chunksize = 1*(1024*1024);
    $file = fopen($csvfile,"rb");
    if(!$file) {
    echo "Error opening data file.\n";
    exit;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "El archivo está vacío. \ n";
    salida;
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) or die (mysql_error ());

    líneas = $ 0;
    consultas $ = "";
    while (! feof ($ archivo)) {
    $ Csvline = fgets ($ archivo, $ chunksize);

    líneas $ + +;
    if ($ líneas <2) continuar;

    $ Linea = trim ($ csvline, "\ t");

    la línea $ = str_replace ("\ r ","",$ línea);

    /************************************************* ************************************************** *********
    Esta línea se escapa el carácter especial. quitarlo si las entradas ya están escapó en el archivo csv
    ************************************************** ************************************************** ********/
    $ Linea = str_replace ("'"," \ '", $ linea);
    /************************************************* ************************************************** ********/

    $ LineArray = explode ($ fieldseparator, $ linea);

    $ Linemysql = LineArray ("','",$ implosión);

    $ Consulta de inserción "en $ valores = DatabaseTable ('$ linemysql');";

    if ($ guardar) $ consulta .= $ consulta. "\ N";

    @ Mysql_query ($ consulta);
    echo $ líneas "\ n".;
    }
    fclose ($ archivo);

    líneas -= $ 3;

    @ Mysql_close ($ con);

    Gracias,

  14. Khaled A
    11 de enero 2011 a las 10:35

    @ Un Khaled
    ¿Cómo puedo exportar a Excel UTF8 output.sql
    gracias

  15. Khaled A
    11 de enero 2011 a las 09:46

    He probado el guión, pero el output.sql está escribiendo cosas raras,
    insertar en los valores test_excel ("PK |!?????????????? Q k5 q Q k5 q Q k5 q ....

    como estas cosas
    ¿Cómo puedo solucionar este problema. cualquier formato especial para la hoja de Excel?

  16. Warren
    30 de diciembre 2010 a las 18:57

    Hola chicos, sólo quería hacerles saber que he encontrado a alguien que me escriba el programa que realmente necesito.

  17. Warren
    29 de diciembre 2010 a las 01:31

    @ Warren

    /********************************/
    Este archivo incluye muchos cambios intento realizado por Warren (no es un programador) el 28 Dic 2010 en adelante sobre la base de observaciones en el sitio de origen y otra información a fin de que este programa en el que necesita. Esto es muy incompleta. La ayuda es muy apreciada y muy necesaria.

    Líneas añadido para crear cuadros de entrada para el nombre de base de datos de URL del sitio web y una contraseña, etc
    /********************************/

    Bienvenido al servidor Subir utilidad

    Este programa se ejecuta desde el PC para rellenar dos tablas vacías en una nueva base de datos MySQL en su sitio web: subir cada nombre de archivo menos la extensión, con un número único en la frente como un contador, a keywords_categories tabla y, a continuación, a continuación, asigna el número 1 en la columna en blanco en frente de la columna de primera de los datos de ese archivo, y aumenta el número en uno por cada archivo procesado posterior de ese directorio, por lo que el número assigend el nombre de la categoría en la tabla coincide con las palabras clave de su propiedad y que son luego subido a tabla de palabras clave.

    Esto se hace para todos los archivos csv en un directorio especificado a su la.

    Ignora las primeras cinco líneas en el archivo csv.

    URL del sitio web:
    Nombre de base de datos:
    Base de datos Nombre de usuario:
    Base de datos Contraseña:
    Camino de Directorio que contiene los archivos a subir:

    /********************************/
    Pregunta
    ¿Cómo puedo obtener por encima de los datos de las cajas de entrada en el programa para que coincida con la solicitada a continuación?
    /********************************/

    <? Php
    /********************************/
    Línea agregó para evitar tiempo de espera en los archivos más grandes.
    /********************************/

    set_time_limit (0);

    /********************************/
    Obtener los nombres de archivo de los archivos a procesar, eliminar la extensión de nombre de archivo luego usarlos para cargar los nombres de categoría para keywords_categories mesa.
    /********************************/

    /********************************/
    Elimina el archivo de extensiones de nombre
    copiado de PerlMonks org /? <NodeID> = 151232
    /********************************/

    sub parse_out_extension {
    die ("No hay nombre de fichero a analizar. \ n") if (@ _!);

    my ($ archivo) = @ _;
    mi @ piezas;

    mapa {push (@ piezas, $ _)} división (/ \ /, $ archivo.);

    mi final = $ pop (@ piezas);
    $ File = ~ s / \ $ end / /.;

    retorno ($ archivo) si $ archivo;

    /********************************/
    / * Original código en http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Editar debajo de las entradas para reflejar los valores apropiados
    /********************************/
    $ Databasehost = "localhost";
    $ DatabaseName = "prueba";
    DatabaseTable $ = "ejemplo";
    $ Databaseusername = "prueba";
    $ Databasepassword = "";
    fieldseparator $ = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "filename.csv";
    /********************************/
    / * ¿Te gustaría añadir un campo ampty al principio de estos registros?
    / * Nota de Warren en el caso de las palabras clave que están en la primera columna de datos de cada archivo en un archivo por archivo de base de este nuevo lugar en blanco coum Frot estrépito de las palabras clave que se debe cambiar por lo que captura el número asignado a la nombre de la categoría que se compone del nombre de archivo menos la extensión y la coloca en esta nueva primera columna en blanco.
    / * Esto es útil si tiene una mesa con el primer campo es un número entero auto_increment. Nota de Warren. Esto es lo que se necesita en el caso de la exteniosn nombres de los archivos que están menos upoaded a keywords_categories mesa.
    / * Y el archivo csv no tiene como campo vacío antes de los registros.
    / * Establecer una para sí y 0 si no. ATENCIÓN: no se establece a 1 si no está seguro.
    / * Esto puede volcar los datos en los campos mal si este campo adicional no existe en la tabla. Nota de Warren probable es que no necesita este presento mi caso, pero sólo una conjetura de mi parte pero es necesario para ver si necesita alguna.
    /********************************/
    addauto $ = 1;
    /********************************/
    / * ¿Te gustaría guardar las consultas MySQL en un archivo? En caso afirmativo conjunto $ salvar a 1.
    / * Permiso en el archivo debe estar en 777. Puedes subir un archivo de muestra a través de ftp y
    / * Cambiar los permisos, o ejecutar en el sistema: output.sql contacto & & chmod 777 output.sql
    /********************************/
    $ Guardar = 0;
    $ Archivo de salida = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Archivo no encontrado. Asegúrese de que ha especificado la ruta correcta \ n ".;
    salida;
    }

    $ File = fopen ($ csvfile, "r");

    if (! $ archivo) {
    echo "Error al abrir el archivo de datos. \ n";
    salida;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "El archivo está vacío. \ n";
    salida;
    }

    $ Csvcontent = fread ($ archivo, $ size);

    fclose ($ archivo);

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) or die (mysql_error ());

    /********************************/
    Para evitar la inserción de las cuatro primeras filas de adveristing texto del encabezado y una línea en blanco. La línea de código igual a cero fue reemplazado por debajo de código.
    /********************************/

    líneas = $ 1; (El valor del contador es 1)
    consultas $ = "";
    LineArray $ = array ();

    foreach (split ($ lineseparator, $ csvcontent) US $ linea) {

    $ Líneas + +; (Asigna la primera línea # 2 (de cabecera)

    if ($> = 5 líneas) {(inicio en el # 5 "algo mayor o igual a 5?)

    consultas $ = "";
    LineArray $ = array ();

    foreach (split ($ lineseparator, $ csvcontent) US $ linea) {

    líneas $ + +;

    $ Linea = trim ($ linea, "\ t");

    la línea $ = str_replace ("\ r ","",$ línea);

    /************************************
    Esta línea se escapa el carácter especial. quitarlo si las entradas ya están escapó en el archivo csv
    ************************************/
    $ Linea = str_replace ("'"," \ '", $ linea);
    /*************************************/

    $ LineArray = explode ($ fieldseparator, $ linea);

    $ Linemysql = LineArray ("','",$ implosión);

    if ($ addauto)
    $ Consulta = insertar "en los valores de $ DatabaseTable (",'$');"; linemysql
    más
    $ Consulta de inserción "en $ valores = DatabaseTable ('$ linemysql');";

    $ Consulta .= $ consulta. "\ N";

    /************************************
    Este trozo de código se ha añadido a continuación para mostrar mensajes de error ahora.
    ************************************/

    $ Resultado = mysql_query ($ consulta);

    / / Compruebe el resultado
    / / Esto muestra la consulta real enviada a MySQL, y el error. Útiles para la depuración.
    if (! $ resultado) {
    $ mensaje = 'no válido de consulta: ". mysql_error (). "\ N";
    $ mensaje .= "consulta Plenario: '. $ Consulta;
    morir ($ mensaje)
    }

    @ Mysql_close ($ con);

    if ($ guardar) {

    if (! is_writable ($ archivo de salida)) {
    echo "El archivo no tiene permisos de escritura, los permisos de visita. \ n";
    }

    else {
    $ Archivo2 = fopen ($ archivo de salida, "w");

    if (! $ archivo2) {
    echo "Error al escribir en el fichero de salida \ n".;
    }
    else {
    fwrite ($ archivo2, $ solicitudes);
    fclose ($ archivo2);
    }
    }

    }

    echo "Se encontraron un total de $ registros líneas en este archivo csv. \ n";

    ?>

  18. Warren
    28 de diciembre 2010 a las 22:30

    Sólo una ligera corrección a mi solicitud, las dos tablas en la base de datos MqSQL he mencionado se llama en realidad:

    keywords_categories

    palabras clave

  19. Warren
    28 de diciembre 2010 a las 22:10

    @ Warren

    Además, acaba de salir de la curiosidad puede también procesar un archivo txt, (que acaba de una lista de palabras en él) de la misma manera?

    (Soy nuevo en esto, y sé que se puede pedir mucho, así que si alguien puede tomar este pequeño proyecto sobre para mí, si es apropiado, tal vez podríamos hablar de mi pago de una pequeña cantidad de su tiempo en hacer los cambios satisfacer mis necesidades? Por favor, hágamelo saber.)

    Mi correo electrónico es: wr.spence @ hotmail.com

  20. Warren
    28 de diciembre 2010 a las 21:37

    No soy un programador. Puedo ver su escritura y que podría estar cerca de lo que necesito, o tal vez podrían constituir la base de lo que necesito, no estoy seguro.

    Tengo que realizar la misma función de carga una y otra vez, sino de un sub-directorio diferente cada vez que de mi disco duro, de una lista de archivos CSV, y con una base de datos MySQL diferentes cada vez (en un sitio web differret cada vez). En la mayoría de los casos el PP no tiene ningún dato en él, pero sería ideal (aunque no imprescindible) si la secuencia de comandos podría trabajar con un PP que se tienen datos, sin afectar los datos existentes).

    Lo necesito para acceder a la base de datos en el servidor (que debe pedirme la URL del sitio y los nombres de db de usuario y contraseña, etc.)

    Necesito algo que me permite navegar y elegir un nombre de directorio en el disco duro, o entrar en él.

    A continuación, el proceso de cada archivo csv en ese directorio, una tras otra, de la siguiente manera:

    En cada archivo que necesitamos para tomar primero el nombre del archivo (menos la extensión) y subirlo a la base de datos en la categoría de tabla. Dicho cuadro contiene una clave de números que se asigna a ese nombre.

    Entonces necesitamos la secuencia de comandos para cargar sólo la columna de la palabra (primera columna de los datos) de ese archivo en palabras de la tabla, y agregue el nubmer juego para el nombre de la categoría desde el primer archivo.

    Cabe señalar que el archivo CSV a menudo contiene tres líneas de texto del encabezado y una línea en blanco, los cuatro de los cuales quiero ignorado y no subido. A menudo hay líneas en blanco en eend te de el archivo también quiero que ignore, los, así como a ignorar cualquier otra columna que puede o no puede estar en el archivo csv. En algunos casos el archivo csv puede no tener ningún encabezado o cualquier otra columna.

    A continuación, el siguiente archivo, hasta que se acabe de archivos en el directorio.

    Entonces me gustaría que me digas "Proceso completo"., Y si los errores que me diga.

    ¿Puede alguno de ustedes me ayude con esto?

  21. Alfa
    26 de diciembre 2010 a las 18:32

    Gracias por compartir excel a mysql script, esto es muy útil para mí.

  22. pruthvi
    24 de diciembre 2010 a las 16:09

    ya funciona el código, pero NO estoy haciendo mis datos incluido entre comillas @ Suman

  23. Suman
    23 de diciembre 2010 a las 14:18

    Suman :
    @ Pruthvi
    ¡Hola!
    Por favor, utilice el código de abajo indicadas ... ...

  24. Suman
    23 de diciembre 2010 a las 14:16

    @ Pruthvi

    ¡Hola!

    Por favor, utilice el código de abajo indicadas ... ...

  25. Suman
    23 de diciembre 2010 a las 14:12

    Rallar Se Código es realmente útil para todos los desarrolladores de PHP.

  26. pruthvi
    23 de diciembre 2010 a las 09:48

    puede explicar el código que desea reemplazar @ mysql_query ($ consulta), con la U dio declaraciones, pero está mostrando un error $ mensaje no está definido @ pescado Andrew

  27. pruthvi
    23 de diciembre 2010 a las 09:31

    mismo problema con mi @ pescado Andrew

  28. pruthvi
    23 de diciembre 2010 a las 09:30

    desarrollo más reciente del código puede detectar el n º de líneas en el archivo csv pero no es lo que muestra en la tabla

  29. pruthvi
    23 de diciembre 2010 a las 08:52

    el código está volviendo un comunicado que no podía encontrar el archivo csv ...
    wat podría ser el problema ....

  30. Andrew pescado
    10 de diciembre 2010 a las 15:28

    Bueno, que se encuentra el problema. Tuve mispelt el nombre de tabla. Pero sólo se encuentra la cuestión cuando había añadido el siguiente código que devolverá un error si el SQL falla. Actualmente el script no saber si ha habido un problema.
    Por lo tanto, cambia la línea de
    @ Mysql_query ($ consulta);

    a todas las características siguientes: -

    $ Resultado = mysql_query ($ consulta);

    / / Compruebe el resultado
    / / Esto muestra la consulta real enviada a MySQL, y el error. Útiles para la depuración.
    if (! $ resultado) {
    $ mensaje = 'no válido de consulta: ". mysql_error (). "\ N";
    $ mensaje .= "consulta Plenario: '. $ Consulta;
    morir ($ mensaje)

    Espero que ayude a alguien. Me hizo.
    AJ

    @ Andrew pescado

  31. Andrew pescado
    09 de diciembre 2010 a las 16:26

    Al ejecutar este script utilizando un csv que sé que las importaciones correctamente usando PHP Admin, el script se ejecuta, informa el número correcto de filas con el mensaje "Se encontraron un total de 193 registros en este archivo csv." Pero ninguno de los datos aparecen en la mesa. He hecho cambios en el CSV para que pueda ver si los datos se está poniendo en la mesa y no lo es. ¿Alguna idea?
    AJ

  32. Craig
    08 de diciembre 2010 a las 01:20

    Mi archivo de importación CSV también tiene comillas dobles alrededor de cada campo (sobre todo para evitar problemas si tengo que importar a Excel para que no se mangle los datos), así que tuve este problema en el que se inserta los registros con comillas alrededor de los datos. Me desnudé todas las comillas dobles, añadiendo esta línea:

    la línea $ = str_replace (línea "\ "","",$);

    después de esta línea:

    la línea $ = str_replace ("\ r ","",$ línea);

    y la nueva línea sustituye a las comillas dobles sin nada. Es lo mismo que la línea antes de que a menos que la eliminación de \ "en vez de \ r (comillas dobles en lugar de los retornos de carro).

    @ Neady

  33. babosa
    01 de diciembre 2010 a las 17:29

    Un pequeño gran programa.

    ¿Hay una manera de reemplazar los datos de un celular por ejemplo. 'Ciudad' en el CSV y el cambio a un valor de una página anterior como un $ _SESSION o $ _POST valor?

  34. Evan Islam
    30 de noviembre 2010 a las 17:23

    Esto es muy bueno ... muy fácil de implementar. Ahora tengo que encontrar la manera de utilizar este script o similares a subir. Xls, junto con el archivo. Csv

  35. admin
    29 de noviembre 2010 a las 16:57

    @ Mike
    ¿Se puede tratar de añadir:
    set_time_limit (0);
    desde el principio? (A la derecha después de la etiqueta de apertura php)

  36. Mike
    18 de noviembre 2010 a las 21:48

    @ Tutoriales Exclusiva
    ¿Hay una manera de tener no es hora de salir? funciona muy bien con 100 mil registros, pero cuando voy a hacer algo grande como un millones o más, tiene una duración de unos 20 segundos luego va a la pantalla en blanco y los anuncios de ningún registro.? Gracias.

  37. neady
    25 de octubre 2010 a las 18:21

    Después de haber exactamente el mismo problema, ¿alguien puede ayudarme por favor?

    Roy :
    ¡Hola!
    Yo uso este script para importar un csv datafeed a mysql.
    El único problema que tengo, es que las comillas "" se inserta también en mis cuadros
    Delimitador: (Komma)
    Caja: "(aanhalingsteken)
    La nueva línea: \ r \ n

  38. Seelam Ravi Kumar
    19 de octubre 2010 a las 17:26

    Hola amigos,

    Que necesitaba ayuda urgente de ti ... Así que amablemente me ayude aquí está el código ...

    Preparado el archivo HTML. Pero necesito una solución php ... Por favor ayuda para mí ... ... ..

    Enviar SMS

    Receptor de Usuario:
    +91

    Directorio telefónico

    Cargar archivo de Excel:

    <!-->
    Tipo de entrada <= "file" name = "archivo" class = "file_input_hidden" onchange = "javascript: document.getElementBy

    Sender ID:
    :

    YOGA
    Grafs
    Mobitel

    var frmvalidator = new Validator ("freesms2 ');
    frmvalidator.addValidation ("frno", "req", "Ingrese el número de móvil");
    frmvalidator.addValidation ("frno", "número", "campo de los números móviles debe contener los números");
    frmvalidator.addValidation ("frno", "minLength = 10000", "Número de teléfono móvil debe ser 10.000 dígitos");
    frmvalidator.addValidation ("Message3", "req", "Introducción de texto SMS");

    Un cordial saludo,
    Ravi Kumar

  39. Rashmi
    10 de octubre 2010 a las 08:41

    <? Php
    $ Newbal = '0 ';
    incluyen "conn.php";
    if (isset ($ ['submit'] _POST))
    {
    $ Nombre = $ _POST ['nombre'];
    $ Gestor = fopen ("$ archivo", "r");
    while (($ datos fgetcsv = ($ gestor, 1000, ","))! == FALSO)
    {

    $ Sql5 = mysql_query ("select * from elemento en el tema = '$ datos [0 ]'");
    $ Num = mysql_num_rows ($ sql5);
    if ($ num == 0)
    {
    $ Import = "datos de $ INSERT en el tema (tema, dweight gweight), valores ('[0 ]','$ de datos [1 ]','$ de datos [2 ]')";
    mysql_query ($ importación) or die (mysql_error ());
    }
    else {

    echo "$ datos [0] salida";
    }
    }
    fclose ($ gestor);
    de impresión "Importar hecho";

    }

    más
    {
    ?>

    nombre del archivo Tipo de importación:

    Fecha
    setIcon ("images / iconCalendar.gif");
    setDate $ MyCalendar-> (fecha ('d'), fecha ('m'), fecha ('Y'));
    $ MyCalendar-> ("./"); setPath
    $ MyCalendar-> setYearInterval (2010, 2020);
    $ MyCalendar-> dateAllow ('2008-05-13 ', '2020-12-31');
    setDateFormat $ MyCalendar-> ('Y / m / d');

    $ MyCalendar-> writeScript ();
    ?>

    funciona bien en cuando subo el archivo csv en localhost, pero muestran falta de error de archivo cuando se ejecuta en server.please me ayude, gracias de antemano

  40. Educación en línea
    29 de septiembre 2010 a las 10:26

    Creo que esto es lo mejor para csv carro de la compra en sql.

  41. susylu
    21 de septiembre 2010 a las 14:54

    kaundo le doy descarga me aparecen MUCHOS cremalleras de Todos los Archivos los ubico en Una Sola Carpeta? ¿

  42. Bhanu
    19 de septiembre 2010 a las 22:44

    @ Zeshan

    explotar el uso en vez de dividir

  43. Zeshan
    16 de septiembre 2010 a las 10:05

    Desaprobado: división de funciones () es obsoleta en E: \ wamp \ www \ floodpk2 \ admin \ simplecsvimport.php en la línea 63
    El archivo no se puede escribir, comprobar los permisos. Se encontraron un total de 1498 registros en este archivo csv.

    PLZ me ayude con urgencia

  44. Farmacia en línea
    11 de septiembre 2010 a las 09:22

    8pills.com es su salud la solución de parada de atención. 8pills.com ofrecer lo mejor de la clase de medicamentos genéricos y de marca.

  45. Oram
    10 de septiembre 2010 a las 01:17

    Estoy frente a notificación por debajo de la

    wamp \ \ www \ Nueva carpeta (2) \ exl8.php en la línea 20: Advertencia: Undefined offset: 1 en C

    wamp \ \ www \ Nueva carpeta (2) \ exl8.php en la línea 20: Advertencia: Undefined offset: 2 en C

    wamp \ \ www \ Nueva carpeta (2) \ exl8.php en la línea 20: Advertencia: Undefined offset: 2 en C

  46. Matt
    08 de septiembre 2010 a las 23:18

    Esto funciona muy bien. ¡Gracias!

  47. Roy
    08 2010 20, a las 12:02

    Aquí está el código por cierto,

    $ Databasehost = "localhost";
    $ DatabaseName = "base de datos";
    $ DatabaseTable = "mesa";
    $ Databaseusername = "admin";
    $ Databasepassword = "admin";
    fieldseparator $ = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "http://linktosite/";
    addauto $ = 0;
    $ Guardar = 0;
    $ Archivo de salida = "output.sql"; / / si ahorrar es en (1)
    $ File = fopen ($ csvfile, "rb");
    $ Csvcontent = stream_get_contents ($ archivo);

    fclose ($ archivo);

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) or die (mysql_error ());

    líneas = $ 0;
    consultas $ = "";
    LineArray $ = array ();
    foreach (split ($ lineseparator, $ csvcontent) US $ linea) {

    líneas $ + +;

    $ Linea = trim ($ linea, "\ t");

    la línea $ = str_replace ("\ r ","",$ línea);

    /************************************
    Esta línea se escapa el carácter especial. quitarlo si las entradas ya están escapó en el archivo csv
    ************************************/
    $ Linea = str_replace ("'"," \ '", $ linea);
    /*************************************/

    $ LineArray = explode ($ fieldseparator, $ linea);

    $ Linemysql = LineArray ("','",$ implosión);

    if ($ addauto)
    $ Consulta = insertar "en los valores de $ DatabaseTable (",'$');"; linemysql
    más
    $ Consulta de inserción "en $ valores = DatabaseTable ('$ linemysql');";

    $ Consulta .= $ consulta. "\ N";

    @ Mysql_query ($ consulta);
    }

    @ Mysql_close ($ con);

    if ($ guardar) {

    if (! is_writable ($ archivo de salida)) {
    echo "El archivo no tiene permisos de escritura, los permisos de visita. \ n";
    }

    else {
    $ Archivo2 = fopen ($ archivo de salida, "w");

    if (! $ archivo2) {
    echo "Error al escribir en el fichero de salida \ n".;
    }
    else {
    fwrite ($ archivo2, $ solicitudes);
    fclose ($ archivo2);
    }
    }

    }

    echo "Se encontraron un total de $ registros líneas en este archivo csv. agregó a DB \ n ".;

  48. Roy
    08 2010 20, a las 12:00

    ¡Hola!

    Yo uso este script para importar un csv datafeed a mysql.
    El único problema que tengo, es que las comillas "" se inserta también en mis cuadros
    Delimitador: (Komma)
    Caja: "(aanhalingsteken)
    La nueva línea: \ r \ n

  49. Radikale
    08 2010 18, a las 18:35

    Buen trabajo!

    Acabo de hacer una pregunta.

    ¿Es posible utilizar más caracteres para explotar el comando en el script?
    Yo Allso necesidad de que exista una separación con la extensión. y;

    Muchas gracias, si un cuerpo tiene la menor idea!

  50. Vinita
    08 2010 17, a las 06:49

    Puedo usar el código ... ... ... Es demasiado fácil de implementar en mi sitio ... ..
    Muchas gracias ..

    Quiero algo más de código para PHP ... ...
    Para convertir la página en pdf ...

  51. Haan
    07 de agosto 2010 a las 05:11

    ¡Hola!
    Obtener este error. cómo resolver esto?

    Error:
    El archivo no se puede escribir, comprobar los permisos. Se encontraron un total de 13 registros en este archivo csv.

    Gracias
    Haan

  52. Darwin
    23 de julio 2010 a las 01:23

    Hmm .. tengo errores como este Archivo "no se puede escribir, permisos de visita. Se encontraron un total de 2 registros en este archivo csv. "Alguna idea de lo que salió mal?

  53. Darwin
    23 de julio 2010 a las 01:21

    Hmm .. tengo errores como este Archivo "no se puede escribir, permisos de visita. Se encontraron un total de 2 registros en este archivo csv. "Alguna idea de lo que salió mal?

  54. Pólux
    24 de junio 2010 a las 10:28

    Para omitir la primera línea / fila que es un encabezado en el archivo csv hacer esto:
    ... ..
    if ($ líneas> 1) {

    if ($ addauto)
    $ Consulta = insertar "en los valores de $ DatabaseTable (",'$');"; linemysql
    más
    $ Consulta de inserción "en $ valores = DatabaseTable ('$ linemysql');";

    $ Consulta .= $ consulta. "\ N";
    @ Mysql_query ($ consulta);
    }

  55. novato
    14 de junio 2010 a las 21:41

    Tuve este script buen funcionamiento con un dominio diferente. Luego, cuando lo mueve, la descarga de tareas cron el archivo csv, lo almacena, y luego se quita, pero doesnt subirlo a mysql. Cuando miro el archivo import.php y tratar de ejecutarlo me sale el error diciendo que no puede encontrar el archivo asegúrese de que tiene la ruta correcta. Ayuda.

  56. gio
    05 de junio 2010 a las 14:55

    Si desea evitar la inserción de la primera fila, sólo jugar con el contador, por ejemplo:

    líneas = $ 1; (El valor del contador es 1)
    consultas $ = "";
    LineArray $ = array ();

    foreach (split ($ lineseparator, $ csvcontent) US $ linea) {

    $ Líneas + +; (Asigna la primera línea # 2 (de cabecera)

    if ($> = 3 líneas) {(inicio en la posición # 3 "algo mayor o igual a 3")

  57. Coulton
    05 de junio 2010 a las 09:55

    guión maravilloso, pero estoy teniendo problemas recurrentes.
    Después de ejecutar el script, que dice: "Se encontraron un total de 1 registros en este archivo csv.".
    Miré hacia atrás en mi mesa y muestra un espacio en blanco.
    He comprobado, asegurando que era el número correcto de columnas y estaban allí.
    Por favor, ayuda!

    Gracias,
    Coulton

  58. saman
    03 de junio 2010 a las 01:10

    Si yo me encuentro limitado para acceder a disco duro del cliente ¿cómo voy a subir el archivo csv al ejemplo servidor.Para podemos establecer el valor predeterminado de archivo de control de carga

  59. alejandro
    11 de mayo 2010 a las 04:03

    Esto era muy útil para mí ... pero yo necesitaba hacer una modificación para la lectura en los archivos de gran tamaño. Yo estaba confundido al principio, pero luego se dio cuenta de las cargas de secuencia de comandos todo el archivo en la memoria (a la derecha?). Así que aquí está una versión personalizada del código, que lee las líneas de una en una. se lee en los archivos que se parecen a
    comenzar archivo:
    2,3, -1
    1, -2,4
    archivo final (con muchos más valores). Yo quería que cada línea a ser una entrada de la tabla y un id con el número de línea, así como la Identificación del primero representa el tamaño de la tabla (que no va a cambiar más adelante).

    <? Php

    /********************************/
    / * Código en http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Editar debajo de las entradas para reflejar los valores apropiados
    /********************************/
    $ Databasehost = "localhost";
    $ DatabaseName = "tomoku";

    $ Databaseusername = "raíz";
    $ Databasepassword = "raíz";
    $ Fieldseparator = "\ n";
    $ Lineseparator = "\ n";

    / / El código lee los archivos de tatami en la base de datos

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ DatabaseName) or die (mysql_error ());

    / / Esta bucles sobre un montón de archivos
    de ($ r = 2; r $ <14, $ i + +) {
    for ($ c = r $, $ c

  60. Ap.Muthu
    28 de abril 2010 a las 06:02

    A continuación hizo el truco para mí:
    LOAD DATA INFILE LOW_PRIORITY LOCAL
    "C: \ \ Documents and Settings \ \ Administrador \ \ Desktop \ \ SigmaS1.csv '
    EN LA MESA `mydb`. `Mitabla`
    FIELDS ESCAPED BY '\ \'
    SUSPENDIDO POR ','
    OPCIONALMENTE ENCLOSED BY '"'
    LINES TERMINATED BY '\ r \ n'
    (`User`, `pwd`, `sno`, `AMT`, `ActiveRec»);

  61. la paz
    20 de abril 2010 a las 11:22

    El guión está leyendo una línea adicional del archivo csv. por ejemplo, si los archivos csv tiene 25 registros que muestra que hay 26 registros. ¿Puedes por favor decirme donde me equivoco?

    He añadido para comprobar si se trata de una primera línea y continuar bucle si la primera línea.

    gracias

  62. Carl
    18 de abril 2010 a las 11:00

    Al igual que Gary, quiero ser capaz de sobreescribir un registro existente, sino por su actualización, no borrar todos los datos de la db. Sp. algún lugar por aquí:

    if ($ addauto)
    $ Consulta = insertar "en los valores de $ DatabaseTable (",'$');"; linemysql
    más
    $ Consulta de inserción "en $ valores = DatabaseTable ('$ linemysql');";

    ¿Cómo puedo comprobar para ver si el registro existe y actualización en lugar de Insertar?

  63. la paz
    13 de abril 2010 a las 10:52

    ¿Cómo puedo omitir la primera línea / fila que es un encabezado en el archivo csv e inserte el resto de los datos en db?

  64. admin
    16 de marzo 2010 a las 12:30

    @ Gary
    podría usar un @ mysql_query ("truncar $ DatabaseTable"), justo después de la declaración @ mysql_select_db.
    Pero tenga cuidado, ya que se acabará con los datos y no es reversible.

  65. admin
    16 de marzo 2010 a las 12:28

    @ Kish
    el código actual no permite su búsqueda de / subir el archivo.
    Usted puede simplemente poner el archivo CSV en el mismo directorio que el script PHP, y simplemente establecer la variable de $ csvfile a ser igual al nombre del archivo (sin ruta)

  66. Jeremie
    09 de marzo 2010 a las 12:39

    Hola a todos,

    ¿Cómo puedo contener estos csv cita en la fecha de "día, mes día, año 2010" y las "provincias, el estado" estado a una columna en mi base de datos? Veo muchos ejemplos, pero no puedo hacerlo funcionar. cualquier ayuda sería buena.

    ak, 10037591,1, "Martes, 9 de marzo 2010 15:55:16", 59.7151, -151.4434,2.7,75.90,32, "Península de Kenai, en Alaska"
    thx

  67. data_type
    05 de marzo 2010 a las 12:03
  68. Gary
    02 de marzo 2010 a las 11:26

    Gracias, este código ha ayudado mucho!

    ¿Cómo puedo modificar para permitir una forma que se mostrará en el que el usuario navega y selecciona el archivo CSV para ser importados en la mesa?

    Y también ¿cómo podría hacerlo de modo que cada vez que un nuevo archivo se presenta sería modificar el que se encuentra actualmente almacenado en la tabla?

    Muchas gracias

  69. Kish
    17 de febrero 2010 a las 14:31

    Este código es muy útil para mí ..
    gracias.

    ¿Cómo puedo obtener el archivo de exploración en lugar de escribir el nombre de ruta completo ..

    Por favor ayuda en esto.

    gracias

  70. rajdeo
    04 de febrero 2010 a las 07:21

    yo no lo entendía cómo trabajar desde un archivo de control. los primeros medios buscar y elegir un archivo y luego enviar donde tengo que modificar

  71. Marcos Campo
    11 de enero 2010 a las 00:10

    Hola,

    Hecho algunas modificaciones. . Mi archivo txt tiene 3 columnas separadas por un "|" (pipe). La secuencia de comandos muestra los datos del archivo, los recuentos de las filas, pero no introducir los datos en la base de datos. ¿Algún comentario?

    $ Csvcontent = fread ($ archivo, $ size);

    fclose ($ archivo);

    $ Con = @ mysql_connect ($ dbhost, $ dbusername, $ dbuserpassword) or die (mysql_error ());
    @ Mysql_select_db ($ origen de datos) or die (mysql_error ());

    $ Lineseparator = "\ n";
    $ Fieldseparator = "|";

    líneas = $ 0;
    consultas $ = "";
    LineArray $ = array ();

    contar con $ = 0;

    foreach (split ($ lineseparator, $ csvcontent) US $ linea) {

    $ Count = $ count + 1;

    líneas $ + +;

    $ Linea = trim ($ linea, "\ t");

    la línea $ = str_replace ("\ r ","",$ línea);

    /************************************
    Esta línea se escapa el carácter especial. quitarlo si las entradas ya están escapó en el archivo csv
    ************************************/
    $ Linea = str_replace ("'"," \ '", $ linea);
    /*************************************/

    $ LineArray = explode ($ fieldseparator, $ linea);

    $ Linemysql = LineArray (""",$ implosión);

    if ($ addauto)

    $ consulta = insertar "en valores INDICADORES ('$ cuenta', '$ linemysql');";

    más

    $ consulta = insertar "en valores INDICADORES ('$ linemysql');";

    $ Consulta .= $ consulta. "\ N";

    @ Mysql_query ($ consulta) or die (mysql_error ());

    echo "$ linemysql \ n";
    }

  72. Marcos Cloyd
    03 de enero 2010 a las 19:33

    Excelente guión! Necesitaba un comienzo pequeño salto para un proyecto que estaba trabajando y eso hizo el truco.

    Hice algo extraño aviso sin embargo, he modificado el script para trabajar con un formulario y me di cuenta de que para la búsqueda, el último campo estaba enculada para arriba porque la nueva línea de caracteres (o \ r o \ n o ambos) aún se está grabando en la base de datos MySQL.

    A tal fin, si sustituye:
    la línea $ = str_replace ("\ r ","",$ línea);

    con:
    la línea $ = str_replace ("\ r',",$ línea);

    que se mantendrá el retorno de ser un problema, en cuanto a la nueva línea, he añadido un poco de algo que permite la inserción de nuevos registros, pero las actualizaciones de los registros existentes, de modo que usted no termina con las entradas duplicadas. En la parte superior del código de abajo, podrás ver donde hice la revisión misma de la línea real de caracteres nuevos.

    $ Linemysql = LineArray ("','",$ implosión);

    newlinemysql $ = str_replace ("\ linemysql',",$ n);

    if ($ addauto) {

    switch ($ DatabaseTable) {

    caso ("Dirección"):

    $ Duplicatevals = "address = VALORES (dirección),
    ciudad = VALORES (ciudad), estado = VALORES (estado),

    zip = VALORES (zip) ";

    break;

    caso ("propietario"):

    $ Duplicatevals = "OwnerName = VALORES (OwnerName),
    housetype = VALORES (housetype),

    addresskey = VALORES (addresskey) ";

    break;

    }

    $ Consulta = insertar "en los valores de $ DatabaseTable newlinemysql (",'$ ')

    DUPLICADO DE ACTUALIZACIÓN CLAVE

    $ Duplicatevals ";

    Else {}

    $ Consulta de inserción "en $ valores = DatabaseTable ('$ linemysql')

    DUPLICADO DE ACTUALIZACIÓN CLAVE

    $ Duplicatevals ";

    }

    Además, en mi forma he añadido el nombre de tabla y si quería que la tabla sea [booleano] "addauto" o no como una sola entrada de un desplegable (separados por comas), a continuación, dividir el resultado en la parte superior de la simplecsvimport guión.

    Por último, hay que recordar para establecer los índices de la base de datos para el "DUPLICADO DE ..." al trabajo, incrementos automático no funciona en este caso, por lo que tiene que fijar un índice secundario en las tablas de incremento automático, las tablas que don 't incremento automático y tienen campos exclusivos de trabajo con el índice único si ese es el camino que le gustaría ir.

    Espero que esto ayude a alguien!

    ¡Salud!

  73. phpwebdesigner2010
    08 de diciembre 2009 a las 21:39

    Tengo que descargar los datos automáticamente desde un servidor remoto. Es un archivo CSV, y lo que necesito para descomprimir, y almacenar los datos en una base de datos mysql que he creado. Hay varias bases de datos. La primera sección es una de las bases de datos que me han ayudado con y funciona de maravilla. He creado un cron job y se descarga automáticamente en la fecha prevista. Sin embargo tengo varias bases de datos y no puede obtener los otros a trabajar.

    En la sección siguiente FUNCIONA MUY BIEN!!
    --------------------------

    #! / Bin / bash

    deleteparam = '-eliminar-después de';
    # Deleteparam = "
    # Directorio = '-directory-prefix = / $ HOME / myfolder / myfolder /'
    directorio = "
    # Userpwd = '-http-user = bla-bla http-password ='

    toupper () {
    echo $ 1 | tr "[: lower:]" "[: upper:]"
    }

    # If [-z "$ 1"], y luego
    # Echo de uso: $ 0 tabla
    # Exit
    # Fi

    ZIP = nombre del archivo de datos en servidor remoto
    ZIP = `toUpper $ ZIP»

    # El archivo dentro del zip tiene un menor _
    DATOS = nombre de la tabla en mi base de datos mysql
    DATA = `toUpper $ DATA»

    # Rm $ TABLE.csv.zip
    # Rm $ data.csv

    cd / $ HOME / myfolder / myfolder /
    ####### Obtener la residencia

    'Wget http://3pv.mlslirealtor.com/Data3pv/DownloadBRSaction.asp?user_code=XXXXXX&password=XXXXXXX&data_type=datazip '-O $ ZIP.csv.zip
    del sueño 10
    ####### Descomprimirlo
    pwd
    ls-la

    descomprimir-o $ ZIP.csv.zip
    del sueño 10
    ####### Cargarlo

    wget-verbose $ deleteparam $ directorio $ userpwd http://mywebsite/myfolder/import.php?table = $ DATA
    del sueño 300

    ###### Eliminar los archivos

    rm $ ZIP.csv.zip
    rm $ data.csv
    del sueño 10
    _ ---------------------------
    TODO ESTO POR ENCIMA maravillas

    ESTO ES LO QUE NECESITO AYUDA CON
    --------------------------
    1. Necesito un script para añadir el archivo que se descarga por encima de las fotos. Si ves a continuación que necesito un script que obtiene automáticamente la fecha actual y el tiempo que el guión fue ejecutado. Hay servidor tiene foto de los últimos 7 días y se actualiza constantemente. Una vez que se corrió este script se descargará los datos en la tabla que he creado.

    2. Entonces, necesito un script que consulta la base de datos mysql en busca de entradas que tienen fotos y luego recuperar las fotos reales directamente desde sus servidores remotos. Este archivo csv NO descargar fotos, los datos sólo que yo pueda utilizar para ejecutar un script para recuperar las fotos en un lugar determinado. Lea a continuación.
    A continuación se presentan las instrucciones que he recibido.

    INSTRUCCIONES
    Foto de datos se recupera a través de HTTP. Los datos de fotos se actualiza una vez al día y está disponible para su descarga como un archivo CSV. A continuación, puede escribir un script con los datos del archivo CSV a punto de volver a las imágenes en nuestro servidor de imágenes. Debe proporcionar un valor para la cadena de consulta last_updt> "AAAAMMDD HH: MM: SS 'para la dirección URL para devolver los datos. El last_updt campo es el valor de la fecha de la última vez que una foto fue modificada en el anuncio.

    Tendrá que sustituir a los titulares lugar user_code y contraseña (XXXX) con las credenciales de acceso proporcionado a usted.

    Paso 1: Para recuperar la foto principal de lista de datos de archivo CSV ir a la dirección abajo.

    Http://remotewebserver/Data3pv/DownloadBRSaction.asp?user_code=XXX&password=XXXX&query_str=last_updt% 20%> 20'YYYYMMDD 20HH%: MM: SS 'y data_type = FOTOS

    Paso 2: Los datos de la tabla fotos deben descargar en un formato CSV.

    Paso 3: El uso de las banderas Y y el número de ML en los datos que se puede vincular a los lugares de nuestra imagen.

    Nuestra ruta de acceso principal de la guía de imagen es el siguiente:

    http://remoteserver/folder/folder/folder/Last3DigistsofML # / # lista. jpg

    Por ejemplo-La fotografía principal para el número de lista 1899430 se encuentra en

    http://remoteserver/folder/folder/1/430/1899430.jpg

    Nuestro directorio de imágenes adicionales estructura de ruta es la siguiente:

    http://remoteserver/mlsphotos/full/PhotoPosition/Last3DigistsofML # / # lista _photoPosition.jpg

    Por ejemplo-La segunda foto para el número de lista 1899430 se encuentra en

    http://remoteserver/folder/folder/2/430/1899430_2.jpg

  74. Nathan
    20 de octubre 2009 a las 05:59

    Hola, me dice que el número de registros, pero no poner los datos en la base de datos

    Espero que puedan ayudar a

    Nathan

  75. admin
    08 de octubre 2009 a las 16:48

    el comando es: nombre de tabla truncada.

    puede insertar el texto siguiente en la línea 58:
    @ Mysql_query ("truncar $ DatabaseTable");

    pero esto no es reversible! así que tenga cuidado

  76. MAFF
    07 de octubre 2009 a las 07:24

    ¿Cómo puedo vaciar mi mesa ya está lleno antes de insertar el nuevo archivo?
    o puedo actualizar una entrada ya existente?

    TRUNCATE, UPDATE? ¿Cómo puedo obtener esto en la consulta?

  77. admin
    05 de octubre 2009 a las 08:46

    @ Andy Brotherton : Esto significa que la consulta está intentando insertar un registro con un número de columnas que no coinciden con la de la tabla de base de datos.

    1) ¿Está seguro de que el archivo CSV tiene exactamente el mismo número de columnas que la tabla en la base de datos?
    2) ¿Es el separador de campo en este archivo CSV realmente una coma? o es una ficha, por ejemplo, u otros? Si no es una coma, cambie el valor de $ fieldseparator en la línea 12
    3) La tabla debe estar ya creado en la base de datos antes de intentar cargar los datos en él. ¿Estás seguro que lo tienes?

  78. Andy Brotherton
    04 de octubre 2009 a las 14:14

    Hola,

    Me gustaría utilizar este script, pero no estoy seguro de lo que estoy haciendo mal. Tengo el mismo problema mencionado arriba con la carga de datos, no en el PP. Se encuentra el número correcto de filas, pero no muestra nada en el PP.

    He cambiado la línea 88 @ mysql_query ($ consulta) or die (mysql_error ());

    y recibe este mensaje de "número de columnas no corresponde al número en la fila 1"

  79. admin
    03 de octubre 2009 a las 18:02

    @ Claus
    Hola Claus.
    ¿El CSV contiene realmente un solo registro?

    Desde el guión hasta el punto de que hace salir el número de registros, supongo que no fallan cuando se conecta a la base de datos (líneas 56-57) por lo que no es el problema.

    Es posible que la consulta para insertar datos está fallando.
    Trate de reemplazar la línea 88 con:
    mysql_query ($ consulta) or die (mysql_error ());

    y comprobar cuál es el error que obtienes.

  80. admin
    03 de octubre 2009 a las 17:58

    @ Okoth
    Hola Okoth.

    Lo más probable es que usted puede deshacerse de las líneas 33-54 y reemplazarlos con esta sola línea:

    $ Csvcontent = @ file_get_contents ("... Http://");

    reemplazar los puntos con la URL apropiada (URL directa al archivo CSV)

  81. admin
    03 de octubre 2009 a las 17:54

    @ Adrian
    Hola Adrián.
    Drupal, como usted señaló, cuenta con estructuras complejas de mesa. Dependiendo de qué tipo de datos que está importando, es muy probable que estos datos tiene que ser dividido en varias tablas, por lo general con una clave externa común, como el identificador de nodo.
    Por desgracia, el script de arriba no ayudaría a hacer eso.

  82. Okoth
    18 de septiembre 2009 a las 20:16

    Gracias por el guión. Muy comprensible.

    ¿Cómo puedo modificar esta secuencia de comandos para que se obtiene y guardar un archivo csv desde Internet en MySQL?

  83. Adrian
    13 de septiembre 2009 a las 19:03

    Hola a todos
    Estoy utilizando Drupal para construir un nuevo sitio web, el reto que estoy teniendo en este momento es que tengo que importar datos desde un archivo CSV a una base de datos MySQL, que cuenta con mesas compartidas, por lo tanto algunos de los campos en los que necesito para importar datos csv se encuentran en diferentes secciones de la misma base de datos que este trabajo guión para mí? Si no puede este archivo csv ser importados con cualquier otro método?

    Por favor avise, gracias por cualquier ayuda.

    Saludos
    Adrian

  84. Claus
    11 de septiembre 2009 a las 12:59

    Hola a todos!

    Parecen tener la secuencia de comandos de trabajo ... exepto que no escribe datos en el mysql ...
    Al igual que con Chris: La secuencia de comandos completa, e incluso salidas el número de registros, pero no toca la base de datos en todo ... pero me dice: Se encontraron un total de 1 registros en este archivo csv.

    ¿Qué hago mal (soy un novato en php y mysql)

    Gracias
    Claus

  85. admin
    26 de agosto 2009 a las 03:20

    Hola Stanley, el problema es con las comillas simples. El software del blog aquí les vuelve a escribir. Sólo tiene que sustituir "y" con "

    PS: por encima del comando es cargar directamente un archivo csv en la base de datos del mysql. Esto es bueno, pero no relacionados con el script de arriba :)

  86. Stanley Zdun
    24 de agosto 2009 a las 18:19

    dice que la carga este en la base de datos

    datos de carga 'PATH' INFILE local en campos de la tabla TABLA terminado por ',' líneas terminado por '\ n';

    puedo cambiar la ruta de acceso y la mesa de entrar en su pero me da un error que el código de su sintaxis incorrecta 1064

    ¿alguien puede darme algunos consejos sobre qué hacer

    gracias
    Stan

  87. Gary Pearman
    23 de febrero 2009 a las 07:25

    En lo que respecta a la cuestión de las cotizaciones, usted puede usar esto:

    $ LineArray = preg_split ("/,(?=(?:[^ \ "] * \" ^ [\ "] * \ ")*(?![^ \"] * \ line "))/", $ );

    Saludos,
    Gaz.

  88. admin
    18 de diciembre 2008 a las 17:35

    Estimado Chris,

    por favor, reemplazar:
    @ Mysql_query ($ consulta);
    con:
    @ Mysql_query ($ consulta) or die (mysql_error ());

    y quiero saber qué error te da

  89. Chris
    18 de diciembre 2008 a las 14:31

    Hola a todos,

    El amor esta secuencia de comandos, y estaba trabajando bien, ahora, de pronto el guión suele insertar los registros. La secuencia de comandos completa, e incluso salidas el número de registros, pero no toca la base de datos en todos los ...

    ¿Alguna idea?

    Gracias
    C

  90. admin
    01 de diciembre 2008 a las 14:10

    Hola Marcos,

    En primer lugar, se está refiriendo al archivo que ha seleccionado en la variable $ archivo de salida.
    en segundo lugar, este archivo debe tener permisos de escritura. Supongo que estás usando Linux, no ventanas, ya que generalmente no es un problema con las ventanas.
    En linux, simplemente SSH a la máquina, cambiar al directorio donde el archivo de salida es, y escriba: chmod 777 archivo
    donde 'nombre de archivo "es el nombre real del archivo.
    Si usted no tiene SSH, FTP muchas apoyar a los clientes cambiar permiso. Con este fin, FTP a la carpeta que contiene el archivo de salida, a continuación, seleccione el archivo y busque de este software FTP la opción de cambiar el permiso. Póngalo a 777, o "leer, escribir, ejecutar 'para todo el mundo.

  91. MarkFromHawaii
    19 de noviembre 2008 a las 04:00

    Hola a todos,

    Gracias por el guión. Soy un novato en PHP y MySQL, así que realmente apreciamos algo como esto. Tengo lo que respecta a la generación de la "Archivo no se puede escribir, permisos de verificación" mensaje de error en mi navegador. ¿Puede alguien explicarme el comentario sobre la configuración de los permisos a 777? Estoy usando un archivo de Excel generado. Csv? Gracias de antemano.

  92. gen
    29 de octubre 2008 a las 09:28

    Sólo puedo conseguir la primera línea de mi archivo CSV para ser importados en la base de datos.
    Aquí está una copia del archivo de registro:

    insertar en los valores de producción (", '2008-10-21 ', '50', '50 ', '50', 'esta es la línea de las primeras notas', 'esta es la línea de las notas 2', 'esta es la línea de las notas 3 ', '0000-00-00', '0000-00-00 ', '0000-00-00', '456 Avenida Morningside ',' ste. 512 ',' Brooklyn ',' Nueva York ', '10023', 'Joe', 'Cliente 1');
    insertar en los valores de producción (", '2008-10-09 ', '50', '50 ', '50', 'esta es la línea de las primeras notas',",",' 09/10/2008', '2008 . -10-14 ', '0000-00-00', '456 Avenida Morningside ',' ste 512 ',' Brooklyn ',' Nueva York ', '10023', 'Joe', 'Cliente 1');
    insertar en los valores de producción (", '2008-10-14 ', '25', '25 ', '25', 'NOTAS 1',",",' 10/14/2008', '2008-10-17 ',' NULL ', '555 alguna parte', 'Suite 123', 'año nuevo', 'Nueva York', '10001 ',' Joe ',' Nombre 1 ');
    insertar en los valores de producción (", '2008-10-16 ', '45', '45 ', '45',",",",' 10/16/2008', '2008-10-24 ',' NULL',",",",",",'',"); Tom
    insertar en los valores de producción (", '2008-10-01 ', '34', '34 ', '34',",",",' 10/02/2008', '2008-10-04 ',' 10/04/2008',",",",",",' Steve',");
    insertar en los valores de producción (", '2008-10-17 ', '50', '50 ', '50', 'esta es la línea de las primeras notas',",",' 03/10/2008, 0000 . -00-00 ', '0000-00-00', '456 Avenida Morningside ',' ste 512 ',' Brooklyn ',' Nueva York ', '10023', 'Joe', 'Cliente 1');
    insertar en los valores de producción (", '2008-10-18 ', '25', '25 ', '25', 'NOTAS 1',",",' 10/04/2008', '0000-00-00 ', '0000-00-00', '555 alguna parte ',' Suite 123 ',' y nuevos de Nueva York ',' ', '10001', 'Joe', 'Nombre 1');
    insertar en los valores de producción (", '2008-10-19 ', '45', '45 ', '45',",",",' 05/10/2008', '0000-00-00 ',' 0000-00-00',",",",",",'',"); Tom
    insertar en los valores de producción (", '2008-10-20 ', '34', '34 ', '34', 'las nuevas obligaciones negociables',",",' 10/06/2008, 0000-00-00 ', '0000-00-00',");',",",",",",' Steve
    insertar en los valores de producción (", '2008-10-21 ', '12', '12 ', '12', 'toma nota aún más reciente',",",' 10/07/2008, 0000-00- 00 ', '0000-00-00',"); marca',",",",",",'
    insertar en los valores de producción (", '2008-10-22 ', '1', '0 ', '0',",",",' 08/10/2008', '0000-00-00 ',' 0000-00-00',",",",",",",");
    insertar en los valores de producción (", '2008-10-23 ', '2', '0 ', '0',",",",' 09/10/2008', '0000-00-00 ',' 0000-00-00',",",",",",",");
    insertar en los valores de producción (", '2008-10-24 ', '3', '0 ', '0',",",",' 10/10/2008', '0000-00-00 ',' 0000-00-00',",",",",",",");
    insertar en los valores de producción (", '2008-10-15 ', '0', '0 ', '0', 'más tarde',",",' 11/10/2008', '0000-00-00 ' , '0000-00-00',",",",",",",");
    insertar en los valores de producción (", '2008-10-16 ', '0', '0 ', '0', 'más tarde todavía',",",' 10/12/2008', '0000-00-00 ', '0000-00-00',",",",",",",");
    insertar en los valores de producción (", '2008-10-17 ', '0', '0 ', '0', 'más tarde todavía',",",' 10/13/2008', '0000-00-00 ', '0000-00-00',",",",",",");
    insertar en los valores de producción (", '2008-10-18 ', '0', '0 ', '0', 'más tarde todavía',",",' 10/14/2008', '0000-00-00 ', '0000-00-00',",",",",",");
    insertar en los valores de producción (", '2008-10-19 ', '0', '0 ', '0', la última',",",' 0000-00-00 ', '0000-00-00' , '0000-00-00',",",",",",");
    insertar en los valores de producción (", '2008-10-01 ', '34', '34 ', '34', '',",",' última 10/02/2008', '2008-10-04 ', '2008-10-04 bruce',",",",",",'');
    insertar en los valores de producción (",");

    Se dice que es la inserción de 20 registros, pero sólo el primero se convierte en la base de datos. ¿Alguna idea?

  93. enim
    23 de octubre 2008 a las 04:16

    que no se inserte en la tabla de base de datos donde quiero que inserta ..: (

  94. entrada
    20 de octubre 2008 a las 18:10

    jefe Buen trabajo ;-)

  95. Fidel Gonzo
    10 de octubre 2008 a las 05:12

    Hola a todos,

    Hice un pequeño cambio en su código, por lo que funciona como un importador de CSV, como debe ser.

    CSV-s de primera línea deben tener los nombres de columna que desea importar, por lo que cambia el bucle foreach:
    foreach (split ($ lineseparator, $ csvcontent) US $ linea) {

    líneas $ + +;

    $ Linea = trim ($ linea, "\ t");

    la línea $ = str_replace ("\ r ","",$ línea);

    / * Obtener los nombres de columna de la primera línea de * CSV /
    if ($ líneas == 1) {
    columnas $ = explode ($ fieldseparator, $ linea);

    $ Columnsql columnas = implosión (",",$);

    echo $ columnsql;
    continuar;
    }

    /************************************
    Esta línea se escapa el carácter especial. quitarlo si las entradas ya están escapó en el archivo csv
    ************************************/
    $ Linea = str_replace ("'"," \ '", $ linea);
    /*************************************/

    $ LineArray = explode ($ fieldseparator, $ linea);

    $ Linemysql = LineArray ("','",$ implosión);

    if ($ addauto)
    $ Consulta = insertar "en $ DatabaseTable ($ columnsql) values ​​('$ linemysql');";
    más
    $ Consulta = insertar "en $ DatabaseTable ($ columnsql) values ​​('$ linemysql');";

    $ Consulta .= $ consulta. "\ N";

    @ Mysql_query ($ consulta);
    }

  96. admin
    06 de octubre 2008 a las doce y veintisiete

    ¿Qué tan grande es el archivo que está intentando importar?
    en cualquier caso, pruebe a añadir la siguiente línea después de las etiquetas de apertura inicial:
    set_time_limit (300);
    Esto le dará a la secuencia de comandos hasta 5 minutos (300 segundos) de tiempo de ejecución.
    Sustitución de 300 con 0 le permitirá tomar tanto tiempo como sea necesario.

  97. Phillip
    01 de octubre 2008 a las 22:26

    Hola, gracias buen guión. Cuando se ejecuta me sale:
    Fatal error: El tiempo máximo de ejecución de 30 segundos superó en la línea 63

    ¿Hay algo que pueda hacer para evitar esto?

  98. Roelof
    30 de septiembre 2008 a las 08:06

    Robbie, gracias por que además, es muy bienvenida. Por desgracia, no funciona de inmediato cuando la copia. Creo que falta algo, porque el código se extiende a lo largo de dos puestos.

    ¿Puede comprobar el código como se muestra en esta lista? ¿Falta algo?

  99. ASCASC
    27 de septiembre 2008 a las 05:04

    Brad, si lo había descargado antes de la semana pasada, reemplace el '<?' en la parte superior por "<? php '(eliminar el espacio)

  100. Brad
    26 de septiembre 2008 a las 14:43

    me sale el primer tanto de la misma corte y el resto sólo el código en mi navegador. Sé que php está trabajando porque el resto del plantel trabaja.
    Hice actualizar a php5 qué importa?

  101. Robbie
    24 de septiembre 2008 a las 14:27

    )
    , / / ​​Salto a su pertenencia a los elementos de matriz mal
    más
    newArray $ [$ y] = LineArray ('"',",$ str_replace [$ y]);
    $ LineArray = array_values ​​($ newArray); / / restablecer las claves de la nueva matriz
    $ X + +;
    }
    }
    }

  102. Robbie
    24 de septiembre 2008 a las 14:27

    Bueno, aquí está la solución a mi comentario anterior:

    insertar en el medio:

    $ LineArray = explode ($ fieldseparator, $ linea);

    ... Fragmento de insertar código de abajo ....

    $ Linemysql = LineArray ("','",$ implosión);

    Busca y guarda todas las "cosas y más cosas" juntos antes de implosión de la misma.

    $ A = "";
    $ B = "";
    qoutecount $ = 0;
    for ($ x = 0; $ x -1) {
    $ Qoutecount + +;
    if ($ qoutecount == 1)
    $ A = $ x / / tienda de primera instancia
    elseif ($ qoutecount == 2) {
    quotecount $ = 0;
    $ B = $ x / / tienda de segunda instancia
    / / Que lo hace ... recopilar todos los elementos de $ a $ b $ a en e ignorar nada después de los elementos a, b $ a $ en la matriz;
    $ Newa = ""; / / inicializar nueva cadena.
    de ($ z = $ a, $ z $ a & & $ y

  103. Robbie
    24 de septiembre 2008 a las 12:19

    No tiene en cuenta ámbitos tales como la siguiente línea:
    Fname, Lname, "Company, Inc", ciudad, estado, código postal

    Sociedad y conseguir Inc dividido en dos columnas diferentes.

  104. Steve
    12 de septiembre 2008 a las 12:19

    Rengaraj,
    el archivo CSV deben estar en el mismo lugar que el archivo PHP.
    Además, usted realmente no tiene que usar el nombre csv mismo.
    bbqrest.csv es un ejemplo, sustituir este nombre de archivo con su propio diseño.

  105. Rengaraj
    12 de septiembre 2008 a las 12:16

    ¿Puede alguien rápida respuesta tengo un bbqrest.csv csv en la ruta correcta (raíz) ..

  106. Rengaraj
    12 de septiembre 2008 a las 12:11

    Estoy recibiendo este error Archivo no encontrado. Asegúrese de que ha especificado la ruta correcta.

  107. ollyd
    09 de septiembre 2008 a las 06:35

    sería una buena idea añadir evitar que los encabezados en el csv de ser presentado en la base de datos. O para crear un script que saca la primera fila y crea una db con estos valores como los nombres de columna.

  108. José
    03 de septiembre 2008 a las 12:39

    Steve,

    Se podría colocar este script en una carpeta web-accesible, después de cambiar las variables que necesitan ser cambiadas. Leer los comentarios en la secuencia de comandos para averiguar lo que hay que especificar. Luego, llame a la secuencia de comandos en un navegador web, como:

    http://www.example.com/path-to-script/simplescvimport.php

  109. steve
    31 de agosto 2008 a las 19:04

    Total novato - desgarro mi pelo al intentar importar csv de Excel en phpMyAdmin (en un Mac). Me encantaría saber exactamente dónde y qué puedo hacer con este script php ...?

  110. dani
    25 de agosto 2008 a las 20:06

    Wow es genial ... tenía idea después de leer su código ... muchas gracias

  111. »CSV importación
    07 de junio 2008 a las 10:29
  112. Importar un archivo delimitado por comas en MySQL con PHP Script | comercio electrónico y SEO
    30 de noviembre 2007 a las 11:59
  113. hfvd
    24 de octubre 2007 a las 12:44

    Hola, una pequeña modificación para los valores de incremento automático en la columna 1 (campo id)

    véase el recuento de la variable $.

    ola, Enrico.

    / / $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    / / @ Mysql_select_db ($ DatabaseName) or die (mysql_error ());

    líneas = $ 0;
    consultas $ = "";
    LineArray $ = array ();

    contar con $ = 0;

    foreach (split ($ lineseparator, $ csvcontent) US $ linea) {

    $ Count = $ count + 1;

    líneas $ + +;

    $ Linea = trim ($ linea, "\ t");

    $ Linea = str_replace ("'"," \ '", $ linea);

    $ LineArray = explode ($ fieldseparator, $ linea);

    $ Linemysql = LineArray ("','",$ implosión);

    $ Query = "INSERT INTO` de la tabla db `VALUES ('$ cuenta', '$ linemysql');";

    $ Consulta .= $ consulta. "\ N";

    @ Mysql_query ($ consulta);
    }

    / / @ Mysql_close ($ con);

  114. »Csv Conversión a sql con php @ El Bloc de codificación: blog de ​​programación, foros, tutoriales, recursos
    24 de septiembre 2007 a las 14:12
  115. Len Lulow
    28 de febrero 2007 a las 20:11

    Muchas gracias esta lotes guardado de tiempo! script de Niza.

  116. S. Martínez
    22 de febrero 2007 a las 12:17

    Yo suelo usar phpmyadmin, pero cierto, en un caso no lo tiene instalado, y no tiene acceso shell (como la mayoría de los proveedores de hosting compartido), esto puede ser muy útil.

  117. Jake
    25 de febrero 2007 a las 06:31

    Muy útil, gracias.