mysql错误,简单问题,高分求助

dreameasy 2007-03-29 11:30:52
我在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分起价.


...全文
204 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
whalefish2001 2007-03-29
  • 打赏
  • 举报
回复
把要进入数据库的东西先用addslashes()函数处理一下,看看。

myInsertOrUpdateData = addslashes(myInsertOrUpdateData);

其实,主要就是处理你要进入数据库的数据。
renjun24 2007-03-29
  • 打赏
  • 举报
回复
不懂,学习来了,帮顶吧
你能给我一分就不错了,谢谢!
dreameasy 2007-03-29
  • 打赏
  • 举报
回复
不好意思,上面的代码抄写错了:

char * word;
char sql[256];
...
sprintf(sql,"insert into t1 values ('%s')",word);
...
if (mysql_query( myData, sql ))
{
strcpy(err,mysql_error(myData));
}
懒得去死 2007-03-29
  • 打赏
  • 举报
回复
特殊字符没做处理.

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧