Bene, ho usato tabelle temporanee invece di variabili array. Non è la soluzione migliore, ma funziona.
Nota che non è necessario definire formalmente i loro campi, basta crearli utilizzando un SELECT:
DROP TEMPORARY TABLE IF EXISTS my_temp_table;
CREATE TEMPORARY TABLE my_temp_table
SELECT first_name FROM people WHERE last_name = 'Smith';
(Vedi anche Crea una tabella temporanea dall'istruzione select senza utilizzare Crea tabella .)