大家好,我是新手,在通过PHP向MYSQL插入中文是,就是插不进去啊。
我的代码如下,页面和MYSQL的字符集全是UTF-8的$dbc = mysqli_connect('localhost', 'root', 'root', 'aliendatabase')
or die('Error connecting to MySQL server.'); $query = "INSERT INTO aliens_abduction (other) VALUES ('好')";
$result = mysqli_query($dbc, $query)
or die('Error querying database.'); mysqli_close($dbc);另外,在MYSQL的客户端插入汉字也有问题,报错如下mysql> insert into a values('好');
ERROR 1366 (HY000): Incorrect string value: '\xBA\xC3' for column 'a' at row 1MYSQL的字符集如下
mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------+
我的代码如下,页面和MYSQL的字符集全是UTF-8的$dbc = mysqli_connect('localhost', 'root', 'root', 'aliendatabase')
or die('Error connecting to MySQL server.'); $query = "INSERT INTO aliens_abduction (other) VALUES ('好')";
$result = mysqli_query($dbc, $query)
or die('Error querying database.'); mysqli_close($dbc);另外,在MYSQL的客户端插入汉字也有问题,报错如下mysql> insert into a values('好');
ERROR 1366 (HY000): Incorrect string value: '\xBA\xC3' for column 'a' at row 1MYSQL的字符集如下
mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------+
解决方案 »
- 关于POST的问题 求大虾帮忙
- php处理图像问题
- 在哪可以找到用PHP做的小型电影网站
- 为了这个bug我搞了7个钟头了。泪奔
- 提交出错后如何保持填写的内容不被重设!!!
- fsockopen打开SSL需要OPENSSL的支持,IIS下如何安装PHP的OPENSSL?
- 这个外国游戏网站有个象QQ,那样的实时对话系统,向大家请教一下它的开发思路。
- 在用editplus调试php的人过来看一下
- 如何将数据库中的TEXT类型的数据按输入数据库时的样式显示出来?
- 我想找一个支持 PHP+Mysql 的虚拟主机,数据库空间较大的,想放vBulletin和PHPNUKE, 请大家推荐一下。
- 这样的数组如何遍历?
- php-无头冤尸...
你是dos窗口下执行的吧,如是的话,就在insert前执行下set names gbk试试;
你的数据库默认语言是 gbk 的
所以非 gbk 编码的都要有语言声明
插进去了,不过完整语句如下,谢谢。
mysqli_query($dbc, "SET NAMES 'UTF8'");
不好意思,刚才想点“引用”来着,一不小心点“板砖”上了,哈哈。我页面用的是UTF-8,数据库用GBK或者GB2312,这样可以吗?