mysql5写入和读出乱码解决

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

相关文章

Mysql数据库操作类( 1127版,提供源码下载 )

Mysql.class.php 下载 复制代码 代码如下: <?php class Mysql { private $db_host; //主机地址 private $db_use...

php更新mysql后获取改变行数的方法

本文实例讲述了php更新mysql后获取改变行数的方法。分享给大家供大家参考。具体分析如下: 一个php更新mysql后获取改变的行数,在php中提供mysql函数来获取最后执行查询所影...

PHP使用mysqldump命令导出数据库

PHP使用外部命令导出数据库,代码很简单,就不多废话了 <?php // $dumpFileName目录要有可写权限 $DbHost = 'localhost...

PHP实现mysqli批量执行多条语句的方法示例

本文实例讲述了PHP实现mysqli批量执行多条语句的方法。分享给大家供大家参考,具体如下: 可以一次性的执行多个操作或取回多个结果集。 实例: <?php $mysq...

PHP开发者常犯的10个MySQL错误更正剖析

1.使用MyISAM而不是InnoDB   完全错误,反驳理由:   首先原文说MyISAM是默认使用的,而实际上到了MySQL 5.5.x,InnoDB已经成为了默认的表引擎。   另...