phpMyAdmin导入WordPress评论至测试站的MySQL错误求助
WordPress评论迁移数据库导入错误解决
问题背景
我有一个WordPress主站(站点A)和用于开发更新的测试站(站点B),计划通过phpMyAdmin将站点A的用户评论迁移至站点B。按教程执行导出导入步骤时,导入环节出现多个错误,导入的SQL代码如下:
SELECT * FROM `LzlcSCHMcomments` WHERE 1 INSERT INTO `LzlcSCHMcomments` (`comment_ID`, `comment_post_ID`, `comment_author`, `comment_author_email`, `comment_author_url`, `comment_author_IP`, `comment_date`, `comment_date_gmt`, `comment_content`, `comment_karma`, `comment_approved`, `comment_agent`, `comment_type`, `comment_parent`, `user_id`) VALUES (28814, 5900, 'AUTHOR', 'EMAIL', '', 'IP', '2022-10-18 06:34:30', '2022-10-18 05:34:30', 'COMMENT', 0, '0', 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36', 'comment', 0, 0); -- -- Índices para tablas volcadas -- -- -- Indices de la tabla `LzlcSCHMcomments` -- ALTER TABLE `LzlcSCHMcomments` ADD PRIMARY KEY (`comment_ID`), ADD KEY `comment_post_ID` (`comment_post_ID`), ADD KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`), ADD KEY `comment_date_gmt` (`comment_date_gmt`), ADD KEY `comment_parent` (`comment_parent`), ADD KEY `comment_author_email` (`comment_author_email`(10)); -- -- AUTO_INCREMENT de las tablas volcadas -- -- -- AUTO_INCREMENT de la tabla `LzlcSCHMcomments` -- ALTER TABLE `LzlcSCHMcomments` MODIFY `comment_ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=28817; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
错误详情
- 静态分析错误:发现1处错误,条件顺序异常(位置9附近的"FROM")
- MySQL错误:#1064 - 第3行的INSERT INTO语句存在语法问题
- COMMIT错误:提示“No operations were started previously (near COMMIT)”
解决步骤
1. 删除多余的SELECT语句
第一行的SELECT * FROM LzlcSCHMcomments WHERE 1属于无效语句,既无实际作用,也未加;结尾,导致后续INSERT语句被解析为同一语句的一部分,直接触发语法错误。删掉这一行即可解决静态分析和INSERT语法问题。
2. 移除重复的表结构修改语句
站点B的LzlcSCHMcomments表作为正常的WordPress评论表,已经自带索引和自增配置。导入时的ALTER TABLE语句会和现有表结构冲突,需删除以下内容:
- 从
-- Índices para tablas volcadas到COMMIT;之前的所有索引、自增修改代码 - 直接删除
COMMIT;语句(未开启事务时,COMMIT无意义,会触发错误)
3. 修正后的最终SQL代码
INSERT INTO `LzlcSCHMcomments` (`comment_ID`, `comment_post_ID`, `comment_author`, `comment_author_email`, `comment_author_url`, `comment_author_IP`, `comment_date`, `comment_date_gmt`, `comment_content`, `comment_karma`, `comment_approved`, `comment_agent`, `comment_type`, `comment_parent`, `user_id`) VALUES (28814, 5900, 'AUTHOR', 'EMAIL', '', 'IP', '2022-10-18 06:34:30', '2022-10-18 05:34:30', 'COMMENT', 0, '0', 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36', 'comment', 0, 0); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
额外注意事项
- 操作前务必备份站点B的数据库,防止数据丢失
- 确认站点B的文章ID和站点A一致,否则评论会关联到错误文章;若ID不匹配,需先同步文章或修改INSERT语句中的
comment_post_ID值 - 导入时选择与站点A一致的字符集,避免评论内容乱码
内容的提问来源于stack exchange,提问作者imthemoisturizer
相关产品推荐
相关产品推荐

