您的SQL语法错误在&#39; <! - 附近

时间:2015-07-03 14:10:14

标签: mysql sql wordpress phpmyadmin

尝试重新定位Wordpress数据库,并且一直在运行这个问题。

尝试所有正常的东西,让它工作优化,修复等,并尝试用几个工具(Sequel pro等)和ssh导入它。

在几个表格中发生问题,并且可以看到其他表格具有相同的问题。因为我不能导入任何副本,我需要一些专业知识建议如何在phpmyadmin或ssh中解决这个问题。

错误消息

  #mysql -u -p db < /tmp/file.sql

> ERROR 1064 (42000) at line 109088: You have an error in your SQL
> syntax; check the manual that corresponds to your MySQL server version
> for the right syntax to use near '<!
> <div class="error"><h1>Error</h1> <p><strong>SQL query:</strong> <a href=' at line 1

我真的不知道如何处理它,因为我在整个数据库中都发现了这一点 喜欢

<image:caption><![CDATA

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

因为&#34;所有正常的东西&#34;没有工作......

我会猜测,你是一个正在运行的东西,以及#34;复制&#34;数据库表的内容,或者你正在做某种&#34;转储&#34;或&#34;出口&#34;这会创建SQL语句。

针对目标运行的SQL语句会引发错误。

我们无法告诉(我们在哪里以及我们所看到的)您实际在做什么,我们只是在猜测。

两种最有可能的可能性:

您使用的任何工具都不希望复制的列值可能包含需要转义的值&#34;如果该值包含在SQL语句的文本中。例如,假设我有一个像这样的列值:

   I'd like a pony

如果我抓住了这个值,我天真地将它粘贴到SQL语句的文本中,而不考虑它可能包含的任何字符,例如。

   INSERT INTO foo (bar) VALUES ('I'd like a pony');

如果我尝试执行该语句,MySQL将抛出语法错误。 MySQL将会看到一个值为'I'的字符串文字(作为字符串一部分的单引号现在被视为字符串文字的结尾.MySQL将标记下面的语法错误d like a pony

当我们从中获取值并从中构建SQL语句时,我们必须正确地转义值。在此示例中,用于重现该字符串值的insert语句可能如下所示:

  INSERT INTO foo (bar) VALUES ('I''d like a pony');
                                  ^^

如果这正是发生的事情,你可以感谢列值并没有包含更恶毒的内容......

  Robert'); DROP TABLE students; -- 

但是没有看到正在执行的实际SQL语句,这只是猜测导致问题的原因。

是否有某种指南或某些说明,您要关注&#34;重新定位Wordpress DB&#34;哪些文件&#34;所有正常的东西&#34;你在做什么?

<强>后续

编辑了问题以添加此信息:

  mysql -u -p db < /tmp/file.sql

这里重要的是file.sql的内容。

这个问题最有可能出现在所有正常的东西中。正在制作该文件。该部分有效地被破坏,因为它不期望提取的列值可以包含单引号字符,并且在将值合并到SQL INSERT语句的文本之前不能正确地转义该值。