MySQL no puede manejar arrays. No existen en ese contexto, a diferencia de Postgre.
Lo que debes hacer en todo caso es o bien una carga masiva con LOAD DATA INFILE, contra un archivo de texto local o en servidor, o bien crear un INSERT masivo, con muchos registros encadenados, por bloque.
Cualquiera de las dos es igualmente funcional. La segunda opción consiste en crear una sentencia tal que sea:
Código MySQL:
Ver originalNSERT
INTO `bd`.
`clientes` (`usuario`, `nombre`, `email`, `pass`) ('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4'),
('valor1', 'valor2', 'valor3', 'valor4');
Esto debe quedar cargado en una sola variable que se envía a MySQL en una sola ejecución. Obviamente, la creación de esta sentencia requiere una programación más fina, pero es inmenso el beneficio cuando tienes centenares de registros a ingresar.
De este modo, por ejemplo, introduzco alrededor de 80.000 registros en bloques de 500 registros, en un lapso de 10 segundos, siendo cada uno de ellos de 52 bytes (52 x 80000 = 4.160.000 bytes).