如果我在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语句或为什么它会以空的结果继续进行,如果它不能识别该语句的任何想法?
编辑:要添加一些见解,请参阅我尝试的内容:
MySQL似乎只是认为LOAD&#34; XML&#34;不是声明类型,就好像我使用的是5.2之前的声明。 verison或者什么,当我在5.7。时,在localhost上使用phpmyadmin和WAMP服务器。
答案 0 :(得分:1)
PhpMyAdmin是第三方基于Web的GUI工具,既不隶属于MySQL也不隶属于甲骨文公司。说... ...
Unrecognized statement type
似乎不是有效的server error。LOAD XML文档警告:
从客户端主机向服务器主机传输XML文件由MySQL服务器启动。[...]在Web环境中,客户端通常从Web服务器连接到MySQL。可以对MySQL服务器运行任何命令的用户可以使用LOAD XML LOCAL来读取Web服务器进程具有读访问权限的任何文件。在此环境中,与MySQL服务器相关的客户端实际上是Web服务器,而不是由连接到Web服务器的用户运行的远程程序。
因此,C:/Users/user/Documents/file.xml
之类的文件系统路径将不起作用,除非您在自己的计算机上运行PhpMyAdmin,并且它运行的用户有权读取您自己的用户配置文件中的文件。