当前位置: 首页 > 知识库问答 >
问题:

Wordpress DB字符集从utf8mb4更改为utf8,导致错误

慎建本
2023-03-14

在我的wordpress站点中,数据库(mysql)已经升级,以前的表字符集是utf8mb4,但现在变成utf8,它将不支持utf8mb4。因此,在我的wp配置文件中,我将字符集更改为utf8。

但我得到了这样的错误

http错误500

共有1个答案

曾景龙
2023-03-14

请使用该代码转换WordPress数据库。

<?php
error_reporting(E_ALL);
$dbname = "YOUR-DATABASE-NAME";
mysql_connect("localhost", "YOUR-DATABASE-USERNAME", "YOUR-DATABASE-PASSWORD") or die(mysql_error());
mysql_select_db("$dbname");
mysql_query("SET NAMES 'utf8';") or die(mysql_error());

$query = "SHOW TABLES";
$result = mysql_query($query) or die(mysql_error());
while ($data = mysql_fetch_assoc($result)) {

	$table = $data["Tables_in_$dbname"];
	$query = "alter table $table convert to character set utf8 collate utf8_turkish_ci";
	mysql_query($query) or die(mysql_error());
	echo "<b>$table</b><br>";

	$query = "SHOW COLUMNS FROM $table";
	$result_2 = mysql_query($query) or die(mysql_error());
	while ($columns = mysql_fetch_assoc($result_2)) {

		if (
				(stripos($columns['Type'], 'varchar')!==false)
				||
				(stripos($columns['Type'], 'text')!==false)
		) {
			$query = "ALTER TABLE $table MODIFY {$columns['Field']} {$columns['Type']} CHARACTER SET utf8 COLLATE utf8_turkish_ci";
			mysql_query($query) or die(mysql_error());
			echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$columns['Field']}<br>";
		}
	}
}

echo "<hr><h1>Done!</h1>";
 类似资料:
  • 我刚刚将我的mysql数据库从utf8转换为utf8mb4,以便支持Emojis,但现在我有一个编码问题。如果我用php打印文本,通常会显示特殊字符,但它们会在数据库中保存为LATIN1ü 我遵循这个指南https://mathiasbynens.be/notes/mysql-utf8mb4 在php中,我在建立连接后设置了这样的字符集 在转换之前,ä被保存为ä,ö被保存为ö等等。 现在它:ü-

  • 当我想用PHPMyAdmin将MySQL字符集从utf8(utf8\u general\u ci)更改为utf8mb4(utf8\u unicode\u ci)时,我做这些事情就足够了吗? 将数据库归类更改为utf8_unicode_ci 将表排序规则更改为utf8_unicodel_ci 将每个文本列更改为utf8_unicodel_ci 将我的PHP代码中的set_charset更改为utf8

  • 问题内容: 和 MySQL中的字符集有什么区别? __ 我已经知道 ASCII , UTF-8 , UTF-16 和 UTF-32 编码;但是我很好奇知道编码组与 MySQL Server中 定义的其他编码类型有什么区别。 使用而不是有什么特别的好处/提议吗? 问题答案: UTF-8是可变长度编码。对于UTF-8,这意味着存储一个代码点需要1-4个字节。但是,MySQL的编码称为“ utf8”(别

  • MySQL中的和字符集有什么区别? 我已经知道ASCII、UTF-8、UTF-16和UTF-32编码;但是我很想知道组编码与MySQL Server中定义的其他编码类型有什么区别。 使用而不是有什么特别的好处/建议吗?

  • 问题内容: 我有一个MySQL转储,尝试将其恢复为: 但是,这引发了一个错误: 这是第3231-3233行: 我正在使用MySQL 5.1.69。我该如何解决这个错误? 问题答案: 您的版本不支持该字符集,我相信是它引入的。您应该将mysql升级到用于导出该文件的版本。 然后,错误就很明显了:您在代码中设置了某个字符集,但是您的mysql版本不支持该字符集,因此对此一无所知。 根据https://

  • 问题内容: 我们有一个仅支持utf8的mySQL DB。但是我们得到了一些需要utf8mb4才能存储在mySQL中的数据提要。我们如何检测(在Java中)字符串是否需要utf8mb4字符集? 问题答案: 需要utf8mb4的字符在Java中表示为代理对,并占用2个字符。因此,一种检测它们的简单方法是检查char中字符串的长度是否与代码点的数量相同: