Importar datos CSV a MySQL

Existe una sentencia de comandos MySQL para importar un fichero separado por tabuladores, punto y coma, coma, etc. a una tabla de datos. Y yo creándome ficheros en php para tal fin… ya me vale.

¿De qué se trata?
El comando ‘load data’ nos permite importar a una tabla de datos de MySQL el contenido de un fichero delimitado por caracteres. Quién no ha tenido que traerse a la base de datos la lista de usuarios con sus correos electrónicos para manejarlos convenientemente con una aplicación que ataque a la base de datos? Pues eso hace este comando, pero sin tener previamente un script en php, por ejemplo, para importarlos.

¿A quién va dirigido?
A todos los que, como el menda, prefieren tener más tiempo libre y menos dedicado al trabajo. A veces… se puede.

Ejecutando
El comando es bastante sencillo. Desde la interfaz de comandos de nuestro sistema, entramos en la shell de comandos de MySQL:

$ mysql -u user_mysql -p

Damos un usuario con permisos, user_mysql, a la base de datos sobre la que vamos a trabajar y la contraseña.
Una vez dentro de la shell de mysql, escogemos la base de datos donde querramos importar los datos:

mysql> use db_mysql

Una vez en la base de datos, ejecutamos el comando para importar el fichero delimitado por caracteres:

mysql> LOAD DATA LOCAL INFILE '/fichero_por_punto_y_coma.csv'
INTO TABLE tabla_mysql FIELDS TERMINATED BY ';'
LINES TERMINATED BY 'r' (campo1, campo2, campo3);
Query OK, 106 rows affected (0.00 sec)
Records: 106  Deleted: 0  Skipped: 0  Warnings: 0

Una vez ejecutado, mysql nos informa de la ejecución (tiempo de ejecución, líneas añadidas a la tabla, si se ha borrado algún registro, si se ha omitido alguno y si alguno ha producido error). El fichero, al que se le pasa la ruta completa del disco duro, en este caso está en el raíz del disco de arranque (‘/fichero_por_punto_y_coma.csv’), se añade en local, podría hacerse en remoto, al host de la base de datos, pero para prevenir errores lo hemos colocado el equipo donde tenemos la base de datos. Al comando ‘LOAD DATA LOCAL INFILE’ le pasamos el fichero que vamos a importar, la tabla destino de la base, en este caso ‘usuarios’ y las siguientes opciones son referentes al contenido del fichero: carácter delimitador de la seperación de campos, en este caso ‘;’, pero podría ser tabulador (‘\t’), coma (‘,’), punto (‘.’) o cualquiera que querramos usar; terminador de línea, que en sistemas Mac es ‘\r’ y en Windows y Unix ‘\n’. Y finalmente, entre paréntesis, ponemos el orden de los campos de la tabla donde vamos a insertar los valores de nuestro fichero de texto.

Es muy sencillo y potente, podéis encontrar más información de este comando en la documentación de MySQL.

SaludoX

Proteger direción de correo con PHP

Uno de los problemas de poner visible nuestar dirección de correo electrónico dentro del código HTML de nuestras páginas es que los robots generadores de spam busca en las etiquetas ‘a href’ la cadena ‘mailto:’ hasta dar con direcciones de correo válidas.

Para hacer que nuestros buzones respiren un poco, y nostros mismos, podemos enmascarar nuestra dirección de correo con un pequeño script PHP que ‘codificará’ un poco nuestra dirección de email.

Para ello, dentro del código PHP de nuestra página creamos la función:

< ?php
function protectMail($s) {
$result = '';
$s = 'mailto:' . $s;
for ($i = 0; $i < strlen($s); $i++) {
$result .= '&#' . ord(substr($s, $i, 1)) . ';';
}
return $result;
}
?>

Y donde queramos escribir un enlace para nos escriban un correo, invocamos a la función ‘protectMail()‘:

< ?php
echo '<a xhref="' .
protectMail('email@address.xyz') .
'">Mi e-mail</a>';
?>

SaludoX

Imágenes de disco en MacOS X: asr

Hola afición!

Hace un par de años os comentaba que la mejor y más fiable forma de hacer una imagen de disco en MacOS X y luego recuperarla era con el comando ‘asr‘ del sistema 10. Y nunca seguí contándoos cómo se hacía.

Ha llegado el momento. Este método es 100% fiable, rápido y seguro. Si no el mejor, apenas hay interfaz gráfica, si el que te da mayor control sobre lo que haces, sobre la máquina.

A grandes rasgos, se trata de hacer una imagen del disco duro con la ‘Utilidad de Discos’ que incorpora OS X y montarla con ‘asr‘ un comando UNIX que Apple incorpora con su distribución de BSD. En todo momento nos
ayudaremos de un tercer sistema operativo en una partición diferente o en un disco externo.

Sigue leyendo