问题描述:
我用PHP+MYSQL进行开发,
之前一直问题,今天写到一个PHP的JS+Ajax更新字段时出现问题。
[Err] 1366 - Incorrect string value: '\xD6\xD0\xB9\xFA' for column 'GeXing' at row 1从网上查了一大堆,结果没一个可用的,
网上都说的是插入的时候编码问题,但现在我的问题是直接输出SQL语句,复制到Navicate里执行时却没有问题,
但在PHP程序里执行时却报上面的错,
我也曾试着用存储过程,但在执行存储过程时仍报错,不清楚怎么搞的。
我用PHP+MYSQL进行开发,
之前一直问题,今天写到一个PHP的JS+Ajax更新字段时出现问题。
[Err] 1366 - Incorrect string value: '\xD6\xD0\xB9\xFA' for column 'GeXing' at row 1从网上查了一大堆,结果没一个可用的,
网上都说的是插入的时候编码问题,但现在我的问题是直接输出SQL语句,复制到Navicate里执行时却没有问题,
但在PHP程序里执行时却报上面的错,
我也曾试着用存储过程,但在执行存储过程时仍报错,不清楚怎么搞的。
解决方案 »
- postgresql 我想给一张表插入海量数据,一条条插不现实,怎么用sql文循环插啊
- 语句问题
- 菜鸟问题
- 急~~~mysql中mysqldump恢复数据库问题
- 请问mysql如何在两个数据库之间导入数据表
- 求一求合的sql
- 在检索数据库数据时,提示“Can't create/write to file 'c:\windows\temp\#sql_7f0_0.MYI'错误。。。
- 问一个问题,可能一个sql就能解决了
- Mysql Error 1064
- 大数据量的情况下,判断记录有无,select count(id) from , 比select id from要快一点吧
- MySQL中使用Navicat删除外键再添加外键的时候总是报错?
- 急mysql定时任务怎么不执行
MySQL 中文显示乱码
CREATE TABLE `t_msghis` (
`Serial` varchar(255) NOT NULL,
`Type` int(11) DEFAULT NULL,
`Title` varchar(255) DEFAULT NULL,
`Context` varchar(255) DEFAULT NULL,
`OperTime` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;插入一条数据:
insert into t_msghis values('中文码1’, 1, '中文码2‘, '中文码3', '中文码4’) 操作端每次进行操作时, 执行一下 set names gb2312; 命令就行了。
下面是C#的代码,其实原理应该是一致的。取得表数据:
MySQLConnection conn;
conn = new MySQLConnection(connectionstring);
conn.Open(); MySQLCommand commn = new MySQLCommand("set names gb2312", conn);
commn.ExecuteNonQuery(); string sql = "select * from t_msghis";
MySQLDataAdapter mda = new MySQLDataAdapter(sql, conn); mda.Fill(table);
conn.Close();
return table;
更改表数据:
public int ExecuteCmd(string str)
{
MySQLConnection conn;
conn = new MySQLConnection(connectionstring);
conn.Open(); MySQLCommand commn = new MySQLCommand("set names gb2312", conn);
commn.ExecuteNonQuery(); commn = new MySQLCommand(string.Format("update t_msghis set context='{0}'", str), conn); int icmd = commn.ExecuteNonQuery();
return icmd;
}
然后在网页中使用相同的编码,这样就不会出现乱码,这样较iconv简单,但需要对服务器进行配置。