易截截图软件、单文件、免安装、纯绿色、仅160KB

MySQL 编码机制

一般在MYSQL使用中文查询
都是用 set NAMES character
character_set_client ,这是用户告诉MySQL查询是用的什么字符集。
character_set_connection ,MySQL接受到用户查询后,按照character_set_client将其转化为character_set_connection设定的字符集。
character_set_results , MySQL将存储的数据转换成character_set_results中设定的字符集发送给用户。
DISCUZ并没有使用set NAMES character

SET NAMES 'x'语句与这三个语句等价:
mysql> SET character_set_client = x; mysql> SET character_set_results = x; mysql> SET character_set_connection = x;
而DISCUZ里面是
复制代码
代码如下:
@mysql_query("SET
character_set_connection=$dbcharset, character_set_results=$dbcharset,
character_set_client=binary", $this->link);
SET character_set_client = binary;使用二进制字符集查询
此三处的字符设定很大程度上会解决乱码问题,那么着三个设定具体有什么作用呢?
character_set_client

定的是Sql语句的编码,如果设置为 binary,mysql就当二进制来处理,character_set_connection指定了mysql
用来运行sql语句的时候使用的编码,也就是说,程序发送给MySQL
的SQL语句,会首先被MySQL从character_set_client指定的编码转换到character_set_connection指定的
编码,如果character_set_clien指定的是binary,则MySQL就会把SQL语句按照
character_set_connection指定的编码解释执行.
当执行SQL语句的过程中,比如向数据库中插入字段的时候,字段也有
编码设置,如果字段的编码设置和character_set_connection指定的不同,则MySQL
会把插入的数据转换成字段设定的编码。SQL语句中的条件判断和SQL插入语句的执行过程类似.
当SQL执行完毕像客户端返回数据的时候,会
把数据从字段指定的编码转换为character_set_results指定的编码,如果character_set_results=NULL
则不做任何转换动作,(注意这里设置为NULL不等于没有设置,没有设置的时候MySQL会继承全局设置),
工作中比较有用的就是利用MySQL进行转码、不同编码的数据库之间共用数据。


相关文档:

Mysql主从服务器的配置笔记

注: 从MySQL从服务器的版本不能小于主服务器的版本 实验环境 Master Mysql服务器版本5.1.36,IP:192.168.128.130 Slave Mysql服务器版本5.1.36,IP:192.168.128.132 一. MySQL主服务器配置 1.建立授权用户 用法:grant replication slave on *.* to ‘用户名’@'主机’ identified by ‘密码’; mysql>grant replicatio ......

关于MySQL的LIMIT 语法小优化!

   
今天有朋友问起此类语句的优化,我大致给他介绍了下从SQL角度做简单的优化,至于应用程序方面的考虑咱暂时不考虑。
下面我来举一个
简单的例子。
考虑如下
表结构:
/*DDL Information
For - t_girl.t_page_sample*/
----------------------------------------------
Table   ......

hibernate+mysql 连接超时解决办法一,(网上找的)


解决hibernate+mysql出现的隔天连接超时问题
出现错误:SQL Error: 0, SQLState: 08S01
Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: Software caused connection abort: socket write error
STACKTRACE:
java.net.SocketExcepti ......

.net链接mysql数据库,操作增删改查。

另外MySql官方出了一个在csharp里面连接MySql的Connector,可以试试
http://dev.mysql.com/downloads/#connector-net
<add name="mysql" connectionString="server=125.46.37.170;uid=root;pwd=;"/>
报错:Unable to connect to any of the specified MySQL hosts.
今天做项目时候就遇到这问 ......

JAVA和PHP获取mysql最后插入的自增id值

php和java通用sql语句法
SELECT max(id) from table
该方法在多线程等情况下可能会造成不正确。
java三种方法
1、根据ps的getGeneratedKeys
PreparedStatement ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); //红色是关键
ps.executeUpdate(); //执行后
ResultSet rs = ps.getGeneratedKeys ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号