el uso de la declaración de CARGA de mysql en PHP falla, pero hacerlo a través de la línea de comandos funciona

Tengo una página web de php que permite a una persona subir un archivo. Quiero extraer el nombre del archivo de $ _FILE y luego cargar todos los datos en mi base de datos.

Mi código se ve así:

 $myfile = $_FILE['file']['tmp_file'];
 $executebatchloadsql = 'LOAD DATA LOCAL INFILE "'. $myfile .'" INTO TABLE testtable (fname, lname);
 mysql_query($executebatchloadsql) or die(mysql_error());

Pero el mensaje de error que estoy recibiendo dice:

El comando usado no está permitido con esta versión de MySQL.

Mis preguntas son las siguientes

¿Se supone que debo usar eltmp_file nombre o el nombre?¿Qué debo hacer para que el comando de carga de datos funcione? He intentado seguir el post encontrado enMySQL: Habilitar DATOS LOCALES DE LA CARGA Pero todavía me está dando el mismo error.

EDITAR 1:

Esto es lo que mi /etc/mysql/my.cnf parece en parte:

[mysqld]

user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
local-infile

La última línea es lo que agregué. También agregué la misma línea a la sección [mysql]:

[mysql]
local-infile

Después de hacer estos cambios, reinicié sql:

/etc/init.d/mysql restart

Pero sigo teniendo el problema.

EDIT 2:

También he intentado local-infile = 1 según la misma publicación que mencioné anteriormente. Pero eso tampoco funciona.

EDITAR 3

He intentado agregar el archivo FILE al usuario ... así:

GRANT FILE ON *.* TO root;

y luego, cuando muestro las concesiones para la raíz, puedo ver que se ha agregado. pero todavía recibo un mensaje de error que indica que el comando usado no está permitido en mi versión de mysql. ¿Necesito el "= 1" después del archivo en mi archivo my.cfg?

EDITAR 4:

Como prueba adicional, intenté cargar el archivo manualmente a través de la línea de comandos en lugar de a través de php y lo acepté. Ingresé como root (que es el mismo id. Estoy usando mi aplicación para propósitos de prueba) y luego probé el siguiente comando:

mysql> load data local infile '/var/www/testwebsite/abc.csv' into table testtable;
Query OK, 3 rows affected, 48 warnings (0.00 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 48

Pero parece que no puedo hacer funcionar el código PHP. Gracias.!

Respuestas a la pregunta(1)

Su respuesta a la pregunta