LOAD XML无法识别的语句类型

时间:2018-05-31 11:04:39

标签: mysql phpmyadmin

如果我在phpMyAdmin中运行一个简单的MySQL查询:

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

它给了我&#34;无法识别的声明类型。 (靠近&#34; LOAD&#34;在0号位置)&#34;以及&#34;#7890 - 无法找到文件&#34;如果找不到该文件。

但是,如果实际找到了该文件,它将继续运行查询,将0结果保存到表中,尽管它仍然无法识别语句类型。

我正在使用MySQL版本5.7.19,PhpMyAdmin版本4.7.4

关于为什么它不能识别XML语句或为什么它会以空的结果继续进行,如果它不能识别该语句的任何想法?

编辑:要添加一些见解,请参阅我尝试的内容:

  • LOAD DATA - 工作得很好,将xml加载到数据库中,只是将数据作为url加载到第一列中,这是预期的,但查询可以正常工作。
  • 使用来自:Microsoft sample xml page的Microsoft示例xml文件(books.xml)来确保我的xml没有错。 - 结果仍然是空的

MySQL似乎只是认为LOAD&#34; XML&#34;不是声明类型,就好像我使用的是5.2之前的声明。 verison或者什么,当我在5.7。时,在localhost上使用phpmyadmin和WAMP服务器。

1 个答案:

答案 0 :(得分:1)

PhpMyAdmin是第三方基于Web的GUI工具,既不隶属于MySQL也不隶属于甲骨文公司。说... ...

  • MySQL Server生成的错误消息看起来不像那样。实际上,Unrecognized statement type似乎不是有效的server error
  • 如果您收到语法错误但该语句实际运行,则很可能是PhpMyAdmin问题。
  • 您可以随时仔细检查,例如official command-line client
  • LOAD XML文档警告:

      

    从客户端主机向服务器主机传输XML文件由MySQL服务器启动。[...]在Web环境中,客户端通常从Web服务器连接到MySQL。可以对MySQL服务器运行任何命令的用户可以使用LOAD XML LOCAL来读取Web服务器进程具有读访问权限的任何文件。在此环境中,与MySQL服务器相关的客户端实际上是Web服务器,而不是由连接到Web服务器的用户运行的远程程序。

    因此,C:/Users/user/Documents/file.xml之类的文件系统路径将不起作用,除非您在自己的计算机上运行PhpMyAdmin,并且它运行的用户有权读取您自己的用户配置文件中的文件。