`
csc365kl
  • 浏览: 54589 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

修复 mysql 页面正常 数据库文件sql乱码

 
阅读更多

msql 页面正常 数据库文件sql乱码

如果你的库原来是gbk编码,则把以下代码存为php文件,记得把下面的数据库名跟数据库帐号密码填上
<?php
define('DB_NAME', 'putyourdbnamehere');    // 数据库名
define('DB_USER', 'usernamehere');     // MySQL用户名
define('DB_PASSWORD', 'yourpasswordhere'); // 密码
define('DB_HOST', 'localhost');    // 很大可能你无需修改此项
function gbk_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 gbk.
 $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 gbk Character set.
  mysql_query("ALTER DATABASE " . DB_NAME . " CHARACTER SET gbk", $link_id);
  foreach ( (array) $tables as $table )
   mysql_query("ALTER TABLE $table CONVERT TO CHARACTER SET gbk", $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('<strong>There are no tables?</strong>');
 }
 return true;
}
gbk_DB_Converter_DoIt();
?>
随便放到一个可以访问到库的php站点下运行即可。
 
如果你的库是utf-8编码,则运行以下代码,记得把下面的数据库名跟数据库帐号密码填上
<?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('<strong>There are no tables?</strong>');
}

return true;
}
UTF8_DB_Converter_DoIt();
?>
运行完之后登录phpmyadmin,查询下就知道乱码已经恢复!
分享到:
评论

相关推荐

    导入大文件到数据库最快的方法

    如何导入大sql文件到虚拟主机mysql数据库教程及相关文件,bigdump.php已修复中文乱码的问题

    基于MySQL的数据库中间件Meituan-DBProxy.zip

    奇虎360公司开源的Atlas是优秀的数据库中间件,美团点评DBA团队针对公司内部需求,在其上做了很多改进工作,形成了新的高可靠、高可用企业级数据库中间件DBProxy,已在公司内部生产环境广泛使用,较为成熟、稳定。...

    sqlite转mysql转Oracle工具

    此工具可以把sqlite mysql 和oracle数据互转 不会乱码丢数据 操作简单 只需要输入正确的sql连接字符串选择表设置分页就可以了 工具无一万条数据的限制

    帝国备份王2008开源版下载 (MYSQL专用备份工具)

    在线执行SQL、导入*.sql文件,方便操作数据; 支持批量替换备份目录文件内容,非常方便的文本替换功能。 5、多语言 系统默认内置“简体中文(gb2312)”、“简体中文(utf-8)”、“繁体中文(gb2312)”、“繁体中文...

    易语言-Mysql线程池2.0模块

    ②在连接池初始化时增加了每一个mysql句柄各执行一次 “SET NAMES 数据库编码”的sql语句方法,可以选择执行还是不执行,防止查询数据库时因编码问题出现乱码。如数据库是utf8编码,里面包含中文,那么select或者...

    74cms 骑士人才系统 v4.1.23 正式版 人才招聘系统源码

    修复 部分数据库版本下,后台职位列表页SQL报错 新增 企业营业执照审核结果微信模板消息通知 优化 企业职位列表添加薪资字段 优化 微信支付接口代码优化 优化 企业会员中心收到简历管理增加搜人才引导 优化 会员操作...

    帝国备份王(Empirebak) 2010 官方版.zip

    帝国备份王EmpireBak是一款完全开源免费、专门为MYSQL大数据的备份与导入而设计的稳定高效软件,系统采用分卷备份与导入,理论上可备份任何大小的数据库. 帝国备份王解决MYSQL备份三大难题: 1、解决备份大数据...

    搜易站内搜索引擎

    2,多数据库支持:目前支持应用最广泛的MS SQL SERVER 2000/2005,MySQL数据库,在后台点点鼠标即可完成数据库数据汇入索引库的匹配; 3,毫秒级的速度:基于倒排索引全文索引技术核心,实现索引分块存储千万级数据...

    PbootCMS开源企业网站管理系统

    如果需要启用Mysql版本,请导入目录下数据库文件\static\backup\sql\xxx.sql,同时请注意使用最新日期名字的脚本文件,并修改config/database数据库连接文件信息。 注意:如果导入的数据库名字不一致,请先修改sql...

    程序猿ProMonkey v2.03.rar

    3. 完善部分页面安全问题 防止SQL注入 4. 增加代码、缺陷、书签页面增加表单JS验证。 [ 安装方法 ] 运行install.php 根据提示进行安装 默认用户名:admin 密码:admin 请登录后进入用户中心更改! [ 程序特色 ]...

    仿世纪佳缘婚介交友系统5.3 ASP+SQL

    、修复功能,数据库中的用户资料可能会出现更新不及时或者信息不正确,即可以从这里的修复进行修得,修复(用户数据、匹配数据、用户VIP时间、用户明星榜)。用户数据主要是根据常规管理中的用户标签,重新对用户...

    ShopEx商店系统 4.8.5.82977

    6、修复会员登录输入错误时提示乱码的问题 7、修复后台访问量统计为0的问题 8、修复部分用户订单列表报SQL错 9、修复部分用户快递单模版无法启用和关闭 10、修复表前缀不是sdb_的时候产生报错 11、过滤地址信息...

    易语言程序免安装版下载

    修改外部数据库在4.12版中导致的不兼容问题,并增加了对MS SQL Server数据库中image和text字段类型的说明。 7. 修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8....

    el-admin后台管理系统-其他

    2、修复EncryptUtils 优化在linux中,存在解密乱码的情况 3、修复禁用用户后用户还可以操作的Bug 4、修复算数型验证码生成浮点型结果,导致前端输入整形数据匹配错误 5、修复菜单分配后菜单数据丢失的问题,修复缓存...

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    阿里代码规范题目+答案50道题,不乱码不套路,便宜实惠。 多选 1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚...

    网吧维护技术资料 合集

    5239 网吧维护\资料\FW\ASP实现对SQL SERVER 数据库的操作.TXT 2945 网吧维护\资料\FW\MYSQL.TXT 11239 网吧维护\资料\FW\WIN2000SERVER安全设置的一些小技巧.TXT 0 网吧维护\资料\FW\WWW.TXT 6103 网吧维护\资料\FW...

    乐享影视app源码 e4a影视app开源源码 支持下载存缓投屏等功能_源码下载

    所有文件以及代码请勿使用记事本修改,否则返回值可能乱码 【安装说明】 1、将程序解压到服务器/虚拟空间 2、将eruyi_user1.3.sql导入数据库 3、修改include目录中的config.php数据库配置 【设置/登入】 后台账号/...

Global site tag (gtag.js) - Google Analytics