Tecnología

Inicio

Cómo utilizar PHP script para importar datos CSV en MySQL

Cómo utilizar PHP script para importar datos CSV en MySQL


La importación de datos CSV en la base de datos de código abierto MySQL puede ser un reto. La gente a menudo prefieren organizar la información en hojas de cálculo, mientras que están escribiendo, pero una vez que se hacen tienen que importarlo a MySQL, una tarea engorrosa de hacer a mano. Una forma sencilla de evitar este problema es crear un script PHP que importa automáticamente todos los datos.

Instrucciones

1 Abra el archivo CSV que desea abrir en un editor de texto como Bloc de notas y examinar el formato del archivo. En concreto, tenga en cuenta qué carácter se utiliza como separador entre campos. Por ejemplo, si el archivo CSV contiene el texto "John; Smith; 6; 58" tenga en cuenta que el separador es el punto y coma ( ";").

2 Compruebe si la primera línea del archivo contiene los nombres de los campos que también existir en la base de datos. Por ejemplo, si cada línea contiene el primer nombre de una persona, apellido, edad y altura, asegúrese de que la primera fila contiene el encabezamiento de la columna apropiada, como "apellido; apellido, la altura, la edad". Si no existe, o que no coincide con los campos en la base de datos, debe corregirlo.

3 Crear la tabla MySQL que el archivo CSV se importará a, si no existe ya. Si no está seguro de cómo hacer esto, consulte la sección de recursos de este artículo. Asegúrese de que los nombres de los campos en la tabla de MySQL coinciden con los del archivo CSV.

4 Copie el script PHP a continuación en un editor de texto como el Bloc de notas, e introduzca la información de base de datos en la segunda línea. Cambiar las palabras en mayúsculas para reflejar su información. Por ejemplo, eliminar "nombre de usuario" e introduzca su nombre de usuario. Guarde el archivo como un archivo .php. En el Bloc de notas esto se hace pulsando en "Archivo" y luego "Guardar como" en la barra de menú superior, la elección de "todos los archivos" en la lista desplegable marcado "Guardar como tipo:" y presionar "Guardar".

Aquí está el código para copiar:

<? Php

$ DBINFO = array ( 'nomServidor' => 'NOMBREHOST', 'dbName' => 'DB_NAME', 'username' => 'USUARIO', 'password' => 'password', 'nombreTabla' => 'TABLE_NAME') ;

fwrite (STDOUT, "Por favor, introduzca la ruta completa al archivo CSV: \ n");

$ FullPath = fgets (STDIN);

fwrite (STDOUT, "Por favor, introduzca el separador de campo: \ n");

$ Sep = fgets (stdin);

$ Primera = true;

if (($ gestor = fopen ($ ruta completa, "r")) === FALSO) die ( "No se puede abrir el archivo CSV que ha introducido");

for ($ i = 0; ($ data = fgetcsv ($ gestor, 0, $ SEP)) == false;! $ i ++) {

$ Num = count ($ data);

if ($ primero) {

if ($ num == 0 || ($ num == 1 && $ datos [0] == null)) die ( "archivo CSV debe contener al menos un campo!");

$ TotalRows = $ num;

$ = $ FieldNames datos;

$ Primera = false;

} Else {

if ($ num = $ totalRows!) die ( "fila no contiene el número requerido de campos.");

$ valores [$ i] = $ de datos;

}}

fclose ($ gestor);

$ Con = mysql_connect ($ DBINFO [ 'nomServidor'], $ DBINFO [ 'nombre de usuario'], $ DBINFO [ 'password']) or die ( "No se pudo conectar: ​​'. Mysql_error ());

mysql_select_db ($ DBINFO [ 'dbName'], $ con);

foreach (valores $ como $ v) {

foreach ($ v $ como Y i) {

$ I = mysql_real_escape_string ($ i);

mysql_query ( "INSERT INTO". $ DBINFO [ 'nombreTabla']. "(". implosión ( ',', $ FieldNames). ") VALUES ( '". implosión ( "", "", $ v). "' ) ");

}}

mysql_close ($ con);

?>

5 Abra la línea de comandos. En Windows, esto se hace pulsando el botón de inicio, eligiendo "Todos los programas" y luego "Accesorios" y pulsar en "Símbolo del sistema". Introduzca la ruta de acceso al ejecutable de PHP y la ruta de acceso al script PHP para ejecutarlo; por ejemplo, "C: \ PHP5 \ php.exe" C: Scripts \ php \ script.php " '. Introduzca la ruta completa al archivo CSV cuando se le solicite por el guión y esperar a que se ejecute el script. Esto puede tomar algo de tiempo. Si se produce algún error, asegúrese de que seguido todos los pasos correctamente.