php5 + apache2 + mysql5 有时候乱码问题 最重要的是统一,php 和读数据库编码统一。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好统一编码如果客户端页面用gb2312,则在数据库连接后mysql_query("set names 'gb2312'" );utf8同理数据库端编码随便如果用的是数据库工具,要把该工具的编码选择和数据库表中的编码一致才能正确显示 PHP文件 本身/HTML编码/数据库链接三者编码都要统一. 编码都是用的utf-8,但是不行代码不是我写的,最近才转php但是发现php 读mysql时没发现设置编码方式的不知道是什么原因服务器上是用的集成环境,没这问题但是本地我是自己配置的,没用集成环境不知道那个地方漏掉了 mysql_query("set names 'utf-8'" ); 当然推荐 DM C3。对页面全部使用UTF-8 <?phpclass swallow { var $querynum = 0; var $link; function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) { if($pconnect) { if(!$this->link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) { $this->halt('Can not connect to MySQL server'); } } else { if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw)) { $this->halt('Can not connect to MySQL server'); } } if($this->version() > '4.1') { global $charset, $dbcharset; if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) { $dbcharset = str_replace('-', '', $charset); } if($dbcharset) { mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link); } if($this->version() > '5.0.1') { mysql_query("SET sql_mode=''", $this->link); } } if($dbname) { mysql_select_db($dbname, $this->link); } } function select_db($dbname) { return mysql_select_db($dbname, $this->link); } function fetch_array($query, $result_type = MYSQL_ASSOC) { return mysql_fetch_array($query, $result_type); } function query($sql, $type = '') { global $debug, $discuz_starttime, $sqldebug, $sqlspenttimes; $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query'; if(!($query = $func($sql, $this->link)) && $type != 'SILENT') { $this->halt('MySQL Query Error', $sql); } $this->querynum++; return $query; } function affected_rows() { return mysql_affected_rows($this->link); } function error() { return (($this->link) ? mysql_error($this->link) : mysql_error()); } function errno() { return intval(($this->link) ? mysql_errno($this->link) : mysql_errno()); } function result($query, $row) { $query = @mysql_result($query, $row); return $query; } function num_rows($query) { $query = mysql_num_rows($query); return $query; } function num_fields($query) { return mysql_num_fields($query); } function free_result($query) { return mysql_free_result($query); } function insert_id() { return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); } function fetch_row($query) { $query = mysql_fetch_row($query); return $query; } function fetch_fields($query) { return mysql_fetch_field($query); } function version() { return mysql_get_server_info($this->link); } function close() { return mysql_close($this->link); } function halt($err,$sql) { return $err.$sql; }}?>用这个类就不用考虑编码问题了,什么都通吃.不用感谢了,给分就完了. 请问怎么修改CDATA中的内容?谢谢 PHP SHELL STREAM ! PHP中怎么查看oracle的版本信息 求php的安装包 javascript生成文件传给php 这个代码是用什么方式加密的,怎么解密 100分:(php连mysql错误)这个报错是什么意思? php如何返回SQL Server的游标的运行结果? 现出高分100,帮我!!! 请问一下有没有支持php4.2.1的php_gd库 firefox中window.login.loginname.focus()无法正常执行 session有效期问题
如果客户端页面用gb2312,则在数据库连接后
mysql_query("set names 'gb2312'" );
utf8同理
数据库端编码随便如果用的是数据库工具,要把该工具的编码选择和数据库表中的编码一致才能正确显示
三者编码都要统一.
代码不是我写的,最近才转php
但是发现php 读mysql时没发现设置编码方式的
不知道是什么原因
服务器上是用的集成环境,没这问题
但是本地我是自己配置的,没用集成环境
不知道那个地方漏掉了
var $querynum = 0;
var $link;
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) {
if($pconnect) {
if(!$this->link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) {
$this->halt('Can not connect to MySQL server');
}
} else {
if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw)) {
$this->halt('Can not connect to MySQL server');
}
} if($this->version() > '4.1') {
global $charset, $dbcharset;
if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
$dbcharset = str_replace('-', '', $charset);
} if($dbcharset) {
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link);
} if($this->version() > '5.0.1') {
mysql_query("SET sql_mode=''", $this->link);
}
} if($dbname) {
mysql_select_db($dbname, $this->link);
} } function select_db($dbname) {
return mysql_select_db($dbname, $this->link);
} function fetch_array($query, $result_type = MYSQL_ASSOC) {
return mysql_fetch_array($query, $result_type);
} function query($sql, $type = '') {
global $debug, $discuz_starttime, $sqldebug, $sqlspenttimes; $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
'mysql_unbuffered_query' : 'mysql_query';
if(!($query = $func($sql, $this->link)) && $type != 'SILENT') {
$this->halt('MySQL Query Error', $sql);
}
$this->querynum++;
return $query;
} function affected_rows() {
return mysql_affected_rows($this->link);
} function error() {
return (($this->link) ? mysql_error($this->link) : mysql_error());
} function errno() {
return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());
} function result($query, $row) {
$query = @mysql_result($query, $row);
return $query;
} function num_rows($query) {
$query = mysql_num_rows($query);
return $query;
} function num_fields($query) {
return mysql_num_fields($query);
} function free_result($query) {
return mysql_free_result($query);
} function insert_id() {
return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);
} function fetch_row($query) {
$query = mysql_fetch_row($query);
return $query;
} function fetch_fields($query) {
return mysql_fetch_field($query);
} function version() {
return mysql_get_server_info($this->link);
} function close() {
return mysql_close($this->link);
}
function halt($err,$sql) {
return $err.$sql;
}
}?>用这个类就不用考虑编码问题了,什么都通吃.
不用感谢了,给分就完了.