日期:2014-05-16  浏览次数:20757 次

mysql错误,简单问题,高分求助
我在windows平台下调用mysql的api向数据库的一张表里添加记录
表名:t1
字段:f1   (text   latin1)
我想将中文编码的字节流以latin形式保存到这个字段.
这是我的sql语句
char   *   word;
char   sql[256];
...
sprintf(sql,insert   into   t1   values   ( '%s ',word)
...
if   (mysql_query(   myData,   sql   ))
{
strcpy(err,mysql_error(myData));
}
这段代码大部分情况下运行正常,
但是当word里面的字节出现某些特殊字符的时候,比如说转义字符 '\ '(0x5c),mysql_query会出现错误,如下面的字符串(二进制方式查看):
A4   40   A4   E9   A4   54   C0   5C   00
我的处理办法是将转义,将字符串变成(二进制方式查看)
A4   40   A4   E9   A4   54   C0   5C   5C   00
但是,这个字符串的mysql_query依然出错,不知道是什么原因.请各位大哥帮我分析一下.

请注意:
这些代码语法没有错误,大部分情况下运行是正常的.只是少量的word会出现这个问题.

本人dreameasy,任何问题都是100分起价.




------解决方案--------------------
不懂,学习来了,帮顶吧
你能给我一分就不错了,谢谢!
------解决方案--------------------
把要进入数据库的东西先用addslashes()函数处理一下,看看。

myInsertOrUpdateData = addslashes(myInsertOrUpdateData);

其实,主要就是处理你要进入数据库的数据。

------解决方案--------------------
特殊字符没做处理.