mysql编码utf8_swedish_更改mysql数据库latin1_swedish_ci为utf8

原文在http://bingu.net/472/latin1_swedish_ci-to-utf8_general_ci/

把下列文件保存为一个.php文件,然后运行

define('DB_NAME', 'putyourdbnamehere'); // 数据库名

define('DB_USER', 'usernamehere'); // MySQL用户名

define('DB_PASSWORD', 'yourpasswordhere'); // 密码

define('DB_HOST', 'localhost'); // 很大可能你无需修改此项

function UTF8_DB_Converter_DoIt() {

$tables = array();

$tables_with_fields = array();

// Since we cannot use the WordPress Database Abstraction Class (wp-db.php),

// we have to make an a stand-alone/direct connection to the database.

$link_id = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die('Error establishing a database connection');

mysql_select_db(DB_NAME, $link_id);

// Gathering information about tables and all the text/string fields that can be affected

// during the conversion to UTF-8.

$resource = mysql_query("SHOW TABLES", $link_id);

while ( $result = mysql_fetch_row($resource) )

$tables[] = $result[0];

if ( !empty($tables) ) {

foreach ( (array) $tables as $table ) {

$resource = mysql_query("EXPLAIN $table", $link_id);

while ( $result = mysql_fetch_assoc($resource) ) {

if ( preg_match('/(char)|(text)|(enum)|(set)/', $result['Type']) )

$tables_with_fields[$table][$result['Field']] = $result['Type'] . " " . ( "YES" == $result['Null'] ? "" : "NOT " ) . "NULL " . ( !is_null($result['Default']) ? "DEFAULT '". $result['Default'] ."'" : "" );

}

}

// Change all text/string fields of the tables to their corresponding binary text/string representations.

foreach ( (array) $tables as $table )

mysql_query("ALTER TABLE $table CONVERT TO CHARACTER SET binary", $link_id);

// Change database and tables to UTF-8 Character set.

mysql_query("ALTER DATABASE " . DB_NAME . " CHARACTER SET utf8", $link_id);

foreach ( (array) $tables as $table )

mysql_query("ALTER TABLE $table CONVERT TO CHARACTER SET utf8", $link_id);

// Return all binary text/string fields previously changed to their original representations.

foreach ( (array) $tables_with_fields as $table => $fields ) {

foreach ( (array) $fields as $field_type => $field_options ) {

mysql_query("ALTER TABLE $table MODIFY $field_type $field_options", $link_id);

}

}

// Optimize tables and finally close the mysql link.

foreach ( (array) $tables as $table )

mysql_query("OPTIMIZE TABLE $table", $link_id);

mysql_close($link_id);

} else {

die('There are no tables?');

}

return true;

}

UTF8_DB_Converter_DoIt();

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值