mysql5写入和读出乱码解决

yipeiwu_com7年前Mysql基础
我写的例子
复制代码 代码如下:
<? 
require("adodb/adodb.inc.php"); 
$conn=newadoconnection('mysql'); 
$conn->connect("localhost","root","2027205","bh38") or  die("连接不成功"); 
$conn->execute("set names gb2312"); 
$conn->execute("INSERT INTO `vv` (`cc`) VALUES ('换了个编码不知道行不行');") or die("错误"); 
$rc=$conn->execute("select * from vv"); 
while(!$rc->EOF) 
{ 
 echo($rc->fields["cc"]); 
 $rc->movenext(); 
} 
?> 

当然我们也可以通过如下指令修改数据库的字符集
alter database da_name default character set 'charset'.
客户端以 gbk格式发送 ,可以采用下述配置:
SET character_set_client='gbk'
SET character_set_connection='gbk'
SET character_set_results='gbk'
这个配置就等价于 SET NAMES 'gbk'。
现在对刚才创建的数据库操作
mysql> use test;
Database changed
mysql> insert into mysqlcode values(null,'php爱好者');
ERROR 1406 (22001): Data too long for column 'content' at row 1
没有指定字符集为gbk,插入时出错
mysql> set names 'gbk';
Query OK, 0 rows affected (0.02 sec)
指定字符集为 gbk
mysql> insert into mysqlcode values(null,'php爱好者');
Query OK, 1 row affected (0.00 sec)
插入成功
mysql> select * from mysqlcode;
+----+-----------+
| id | content   |
+----+-----------+
| 1  | php爱好着 |
+----+-----------+
1 row in set (0.00 sec)
在没有指定字符集gbk时读取也会出现乱码,如下
mysql> select * from mysqlcode;
+----+---------+
| id | content |
+----+---------+
| 1  | php???  |
+----+---------+
1 row in set (0.00 sec)

相关文章

mysqli扩展无法在PHP7下升级问题的解决

mysqli扩展无法在PHP7下升级问题的解决

前言 这几天在想部署一个OAuth服务,找了一个PHP的开源实现,由于要求的PHP版本比较高,就打算在自己的ECS上(PHP7.1)先测试下,没想到遇到了一些问题。 首先发现mysqli...

五款常用mysql slow log分析工具的比较分析

五款常用mysql slow log分析工具的比较分析

启用 slow log 有两种启用方式:1, 在my.cnf 里 通过 log-slow-queries[=file_name] 2, 在mysqld进程启动时,指定--log-sl...

Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法

对比下面两个脚本的速度: Windows 7 用 localhost 连接本地 MySQL,速度会很慢。 Windows 7 用 127.0.0.1 连接本地 MySQL,速度...

将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法

首先我们要先了解一下IP地址转换为整型(严格来说应该说是长整型)的原理~ 【转换原理】:假设IP为:w.x.y.z,则IP地址转为整型数字的计算公式为:intIP = 256*256*2...

PHP PDO操作MySQL基础教程

本文实例讲述了PHP PDO操作MySQL的方法。分享给大家供大家参考,具体如下: PHP中的PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这...