использование mysql LOAD statment в PHP завершается с ошибкой, но выполнение этого выполняется с помощью командной строки

У меня есть веб-страница php, которая позволяет пользователю загрузить файл. Я хочу извлечь имя файла из $ _FILE, а затем загрузить все данные в мою базу данных.

Мой код выглядит так:

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

Но сообщение об ошибке, которое я получаю, говорит:

Использованная команда не допускается с этой версией MySQL

Мои вопросы следующие

  1. Должен ли я использовать имя tmp_file или имя?
  2. Что мне нужно сделать, чтобы заставить команду данных нагрузки работать? Я попытался следить за сообщением, найденным в MySQL: Включить LOAD DATA LOCAL INFILE, но он по-прежнему дает мне такую ​​же ошибку.

ИЗМЕНИТЬ 1:

Это то, что мой /etc/mysql/my.cnf выглядит частично:

 [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 

Последняя строка – это то, что я добавил. Я также добавил ту же строку в раздел [mysql]:

 [mysql] local-infile 

После внесения этих изменений я перезапустил sql:

 /etc/init.d/mysql restart 

Но у меня все еще проблема

EDIT 2:

Я также пробовал local-infile = 1 в соответствии с тем же сообщением, о котором я упоминал выше. Но это тоже не работает.

ИЗМЕНИТЬ 3

Я попытался добавить FILE prvil пользователю .. так:

 GRANT FILE ON *.* TO root; 

а затем, когда я выдаю гранты для root, я вижу, что он был добавлен. но я все еще получаю сообщение об ошибке, что используемая команда не разрешена в моей версии mysql. Нужно ли мне «= 1» после infile в моем файле my.cfg?

EDIT 4:

В качестве дополнительного теста я попытался загрузить файл вручную через командную строку вместо php и принял ее. Я зарегистрировался как root (это тот же идентификатор, который я использую в приложении для тестирования), а затем я попробовал следующую команду:

 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 

Но я не могу заставить PHP-код работать. Благодаря.!

Solutions Collecting From Web of "использование mysql LOAD statment в PHP завершается с ошибкой, но выполнение этого выполняется с помощью командной строки"