ЗАГРУЗИТЬ XML Нераспознанный тип оператора - PullRequest
0 голосов
/ 31 мая 2018

Если я запускаю простой запрос MySQL в phpMyAdmin:

LOAD XML LOCAL INFILE "C:/Users/user/Documents/file.xml"
INTO TABLE mytable
CHARACTER SET utf8
ROWS IDENTIFIED BY '<tag>'

, это дает мне «Нераспознанный тип оператора (рядом с« LOAD »в позиции 0)», а также «# 7890 - Невозможноfind file ", если файл не найден.

Однако, если файл действительно найден, он продолжает выполнение запроса, сохраняя 0 результатов в таблице, хотя он все еще не распознает тип оператора.

Я использую MySQL версии 5.7.19, PhpMyAdmin версии 4.7.4

Любые идеи относительно того, почему он не будет распознавать оператор XML или почему он будет работать с пустым результатом, если онне признал бы заявление?

Редактировать: Чтобы добавить некоторое понимание, я попробовал вот что:

  • ЗАГРУЗИТЬ ДАННЫЕ - отлично работает, загружает XML в базу данных, загружает только данные в виде URL-адресов в первыйстолбец, что и следовало ожидать, но запрос работает.
  • Использование примера XML-файла Microsoft (books.xml) из: Пример XML-страницы Microsoft , чтобы убедиться, что мой xml не ошибается.- результаты все еще пусты

Кажется, что MySQL считает LOAD «XML» не типом оператора, как если бы я использовал pre 5.2.Verison или что-то, в то время как я на 5.7., используя phpmyadmin и сервер WAMP на localhost.

1 Ответ

0 голосов
/ 31 мая 2018

PhpMyAdmin - это сторонний веб-инструмент с графическим интерфейсом, который не связан ни с MySQL, ни с Oracle Corporation.Сказал, что ...

  • Сообщения об ошибках, генерируемые MySQL Server, не выглядят так.На самом деле, Unrecognized statement type не является допустимой ошибкой сервера .
  • Если вы получили синтаксическую ошибку, но оператор на самом деле выполняется, это, скорее всего, проблема PhpMyAdmin.
  • Вы всегда можете перепроверить, например, с помощью официального клиента командной строки .
  • ЗАГРУЗИТЬ XML Документация предупреждает:

    передача файла XML с клиентского хоста на хост сервера инициируется сервером MySQL. [...] В веб-среде клиенты обычно подключаются к MySQL с веб-сервера.Пользователь, который может выполнить любую команду на сервере MySQL, может использовать LOAD XML LOCAL для чтения любых файлов, к которым у процесса веб-сервера есть доступ для чтения.В этой среде клиент по отношению к серверу MySQL фактически является веб-сервером, а не удаленной программой, выполняемой пользователем, который подключается к веб-серверу.

    Таким образом, путь к файловой системе, такой как C:/Users/user/Documents/file.xml, не будет работать, если вы не запускаете PhpMyAdmin на своем собственном компьютере, и у пользователя, с которым он работает, есть права на чтение файлов в вашем собственном профиле пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...