mysql5写入和读出乱码解决

yipeiwu_com6年前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)

相关文章

在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境

在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境

安装前的准备工作: 在c盘或者d盘的根目录下创建一个文件夹,名称您可以自行确定。我们这里在d盘根目录下创建一个叫oServer的文件夹。 1.下载PHP a)访问http://w...

php+mysql实现简单的增删改查功能

列表代码 <?php $con = mysql_connect("localhost:3306","root",""); if (!$con) { d...

PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别

虽然nosql变得流行,但是我感觉sql还是主流 今天在翻php manul的时候,发现mysqli 的查询可以传递一个有意思的参数 复制代码 代码如下: @mysqli_query($...

PHP+Mysql+jQuery查询和列表框选择操作实例讲解

PHP+Mysql+jQuery查询和列表框选择操作实例讲解

本文讲解如何通过ajax查询mysql数据,并将返回的数据显示在待选列表中,再通过选择最终将选项加入到已选区,可以用在许多后台管理系统中。本文列表框的操作依赖jquery插件。 HTM...

PHP+Mysql实现多关键字与多字段生成SQL语句的函数

本文实例讲述了PHP+Mysql实现多关键字与多字段生成SQL语句的函数的方法。分享给大家供大家参考。具体实现方法如下: 先看实例: 复制代码 代码如下:$keyword="1 2 3"...