简明现代魔法 -> PHP服务器脚本 -> PHP+MySQL应用的乱码根绝方案

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

2010-05-22

乱码的现象相信大家都遇到过,也有很多方法去解决。有些方法在某些环境下确实解决了问题,但是换个运行环境可能又会出毛病了。现在 nowamagic 网站给大家介绍一个能够根绝乱码现象的方法,很简单却很有效。主要思想就是客户端页面,数据传递,和数据库存储的编码要一致。

首先在设计数据表的时候,在末尾加上这么一句:

DEFAULT CHARACTER SET utf8;

这样就能够保证数据库使用 utf8 存储。

然后在前端页面上加上下面:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

这样就能够保证前端页面也是用 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))
	{
?> 

<div class="mag_show">
	<div class="mag_front"><a href="magazineDetail.php?id=<?=$myrow["magazine_id"]?>" target="_blank"><img border="0" src="images/<?php echo $myrow["magazine_frontsmall"]; ?>" /></a></div>
    <div class="mag_name"><?php echo $myrow["magazine_name"]; ?></div>
    <div class="mag_function">
<a href="#">在线阅读</a> | <a href="#">收藏</a> | <a href="#">下载</a>
    </div>
</div>

<?php
	}
?> 

<?php
	$connector -> close($connector);
?> 
随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们