<? 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)