如何设置mysql的配置文件,可使得程序访问数据库时,不使用 set names。。语句,也可以有 和从控制台窗口访问数据库一样的 字符集变量
首先呢,
我在my.ini 配置文件里,不管是[client]\[mysqld]\[mysql]下,都指定了字符集default-character-set = gb2312
从控制台窗口(dos窗口)登陆数据库,
用show variables,可以看到如下结果。
| character_set_client | gb2312
| character_set_connection | gb2312
| character_set_database | gb2312
| character_set_filesystem | binary
| character_set_results | gb2312
| character_set_server | gb2312
从控制台插入数据,选择,显示都没有任何问题。
但是,
如果我编写php脚本程序访问数据库,发现是乱码;必须在程序的开始,使用 mysql_query("set names 'gb2312';")语句才能避免乱码。
我刚开始的时候感觉很奇怪,明明在配置文件里都已经设置过字符集变量了,怎么还必须使用 set names 才能避免乱码。
然后我在程序里,把字符集变量取出来显示,结果发现,程序访问数据库时,字符集变量并没有更改,client\connection 等字符集变量仍然是 latin1 .
这是怎么回事? 如何设置 配置文件,或如何配置mysql服务器,才能在程序里省略 mysql_query("set names ...语句,也能获得和控制台一样的字符集变量设置