7位用戶,發佈了528篇文章,產生了91條評論!歡迎新會員:woshiyipianyun

發佈信息

 
 

更改mysql数据库库字符集

freetor

freetor發表於212天 10小時 24分鐘前
來源:www.freetor.com 標籤:mysqlphp

 

 更改你数据库 库的字符集,包括库里表的字符集,表上字段的字符集。

注意:这不能将你latin1的表转换到多字节字符集。(理论上是可以,但是转换后它仍然是一个latin1的特性,只是强制换了个名字,除了给你带来一些不必要的困惑外,不具有任何实际意义)。


本人运用环境 gbk 换到 utf8.


 



PHP代码


  1. <?   

  2. mysql_pconnect('localhost','xxx','xxx');   

  3. mysql_select_db($dbname);   

  4. mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8");   

  5. $query1=mysql_query("SHOW TABLE STATUS");   

  6. $row=array();   

  7. while ($row=mysql_fetch_assoc($query1)){   

  8.     $tname = $row['Name'];   

  9.     mysql_query("ALTER TABLE `".$tname."` DEFAULT CHARACTER SET utf8");   

  10.     $query2=mysql_query("SHOW FULL FIELDS FROM `".$tname."`");   

  11.     $row=array();   

  12.     while($row = mysql_fetch_assoc($query2)){   

  13.         if(!is_null($row['Collation'])){   

  14.             $x ='CHARACTER SET utf8';   

  15.   

  16.   

  17.             if(!is_null($row['Default']))   $d = "default '".$row['Default']."'";   

  18.             elseif($row['Null'] == 'YES' AND is_null($row['Default'])) $d = "default NULL";   

  19.             else $d='';   

  20.   

  21.             if($row['Null'] == 'NO'$n ='NOT NULL';   

  22.             else $n='';   

  23.   

  24.             $xx ="ALTER TABLE `".$tname."` MODIFY `".$row['Field']."` ".$row['Type']." $x $n $d ".$row['Extra']."";   

  25.             mysql_query($xx);   

  26.             //echo $xx."\n";   

  27.         }   

  28.     }   

  29. }   

  30. ?>  



 


抱歉,由于没有上传相关代码高亮的样式表,所以代码显示有点垃圾,复制下来用吧。


还有最好是用命令行跑吧,如果你数据量大,web执行是必定有障碍的。

關注用戶

    最近還沒有登錄用戶關注過這篇文章…
暫無評論
共有 0 位網友發表了評論

評論

可用表情
huh  ohmy  wink  tongue  biggrin  laugh 
cool  rolleyes  dry  smile  mad  sad 
unsure  blink  ph34r  wub  wacko  laugh