mysql乱码,PHP+MySQL应用的乱码根绝方案

乱码的现象相信大家都遇到过,也有很多方法去解决。有些方法在某些环境下确实解决了问题,但是换个运行环境可能又会出毛病了。现在 nowamagic 网站给大家介绍一个能够根绝乱码现象的方法,很简单却很有效。主要思想就是客户端页面,数据传递,和数据库存储的编码要一致。
首先在设计数据表的时候,在末尾加上这么一句:
DEFAULT CHARACTER SET utf8;
这样就能够保证数据库使用 utf8 存储。
然后在前端页面上加上下面:
这样就能够保证前端页面也是用 utf8 编码。
最后要说的是,数据传递中如何规范编码?也很简单。
mysql_query("SET NAMES 'utf8'");
下面给出本站的数据库连接类。
class nmdb{ // 连接数据库 function __construct($host, $username, $password) { @mysql_connect($host, $username, $password); mysql_query("SET NAMES 'utf8'"); } // 连接数据表 function select_db($database) { return @mysql_select_db($database); } // 执行SQL语句 function query($query) { return @mysql_query($query); } // 将结果集保存为数组 function fetch_array($fetch_array) { return @mysql_fetch_array($fetch_array, MYSQL_ASSOC); } // 获得记录数目 function num_rows($query) { return @mysql_num_rows($query); } // 关闭数据库连接 function close($conn) { return @mysql_close($conn); }}
使用这个连接类来进行数据库与前端页面进行数据传递,就可以规范数据格式为 utf8。
如何使用这个类?下面给出一个例子。
< ?php include("includes/nmdb.php"); include("includes/dbinfo.php"); $connector = new nmdb($host, $username, $password); $connector -> select_db($database); $count = $connector -> num_rows($connector -> query("select * from magazine")); $query = "select * from magazine order by "; $query .= "magazine_pubtime desc limit 0, 3"; $result = $connector -> query($query);?>< ?php while($myrow = $connector -> fetch_array($result)) {?>
< ?php echo $myrow["magazine_name"]; ?>
< ?php }?> < ?php $connector -> close($connector);?>
Tags:  mysql乱码

延伸阅读

最新评论

发表评论