【问题标题】:Changing URL via SQL通过 SQL 更改 URL
【发布时间】:2026-01-13 22:55:01
【问题描述】:

仅对 SQL 和 PHP 有基本了解,我一直在尝试迁移构建在本地服务器上的 Wordpress 布局:

http://131...

ceje.webhost.uic.edu

我在 phpmyadmin 中更改了 'siteurl' 和 'home' 后,样式和图片无法加载。似乎在更改之前,它仍然是从本地托管的网站中拉取图片。

如果我错了,请纠正我,但是 URL 更改应该可以解决这个问题吗?所有文件都已上传到新的托管服务器空间,因此应该通过“ceje.webhost.uic.edu/...”访问?

我尝试在 phpmyadmin 上进行 sql 查询:

USE **databasename**;

UPDATE wp_options SET option_value = replace(option_value, 'http://131....',       
'http://ceje.webhost.uic.edu/') WHERE option_name = 'home' OR option_name = 'siteurl';

但返回错误 1064

MySQL said: Documentation

#1064 - 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 

编辑:修复了 sql 查询中的语法错误,现在返回没有行返回。

# MySQL returned an empty result set (i.e. zero rows).

编辑:只需将以下代码应用于functions.php文件即可解决。

update_option('siteurl','...');     
update_option('home','...');

【问题讨论】:

  • mysql 查询中缺少单引号:UPDATE wp_options SET option_value = replace(option_value, '131.193.220.64/ceje','http://ceje.webhost.uic.edu/') WHERE option_name = 'home' OR option_name = 'siteurl';
  • 谢谢,这有助于查询通过,但又回来了:# MySQL 返回了一个空结果集(即零行)。 # MySQL 返回一个空结果集(即零行)。
  • UPDATE 查询将返回“行数受影响”的结果,您是否在此之后执行任何 SELECT 查询?
  • 请原谅我的无知,但不是将 update = replace 语法设置为等同于:搜索/替换功能,因此如果我想“更新”所有结果就不需要选择查询?跨度>

标签: php mysql sql wordpress


【解决方案1】:

迁移网站时,图片网址不会更改。当然,您需要更改网站/主页 url 才能显示。

迁移网站时最好安装以下插件。

http://wordpress.org/plugins/search-and-replace/

这将允许您在数据库中搜索和替换,因为图像链接会在您的许多表中找到,例如保存所有帖子数据的 wp_posts 将在帖子内容中包含图像 URL。该插件将在所有表中搜索旧 url 并将其替换为您提供的新 url。

如果您在文件中使用绝对 url 硬编码了任何图像,则必须手动更改。

我已经多次成功使用该插件,但我还是每次都备份数据库以防万一,我建议你也这样做。

【讨论】:

  • 在 Wordpress 上更改 URL 后是否应该使用此插件?我最初使用 SQL 查询的目标是这样做,但我会试试这个插件。
  • 是的,一旦您更改了站点/主页 url,您就可以登录您的仪表板并安装插件来修复图像,让我知道您是如何开始的
  • 嗯,我可能做错了什么。我开始通过 wordpress 将 URL 从本地服务器 IP 地址更改为子域,但是现在 wp-login 无法访问。
  • 站点/主页 url 在开发服务器上应该保持不变。然后将文件和数据库都迁移到新服务器。迁移后,您可以更改生产服务器上的数据以表示站点/主页的新 url。更改后,该站点应该可以访问,并且仪表板也将可用。在此阶段,您将安装插件。
  • 抱歉延迟回复。我去做了搜索和替换,然后还更新了我网站的 functions.php 以正确反映新的 URL。现在运行良好!