sqlite里sql语句替换的疑问!1

布鲁克斯南南 2012-12-13 01:19:54

如题-----
/**更新某行某列的数据**/
char *sql10="update test_table set age='28',hight='203' where name='ll'";
int tem10=sqlite3_exec(db,sql10,call_back,0,&errmsg);
if(tem10!=SQLITE_OK)
perror("sqlite3_errmsg");


在这里的疑问是,假如我从缓冲区中read(fd,buff,leangth);
假如 我要将buff里的字符内容更新到数据库中,(
char *sql10="update test_table set age='28',hight='203' where name='ll'";//就是怎么把这里的‘28’和‘203’怎么替换成buff里的内容啊,通过什么途径来来替换,才能让sql执行语句不是像上面不是自己输入进去的那样
...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2012-12-13
  • 打赏
  • 举报
回复
sprintf(sql11,"update test_table set age='%d',hight='%d' where name='ll'",updatechar[0],updatechar[1]); 没什么好办法,只能是拼接字符串。 不是 sprintf就是 strcpy
WWWWA 2012-12-13
  • 打赏
  • 举报
回复
没有其他的方法,与你的方法相似
布鲁克斯南南 2012-12-13
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
字符串累加生成SQL语句的方法 将read(fd,buff,leangth)取得的内容赋值变量,生成SQL语句再执行 char *sql10="update test_table set age='"+变量+"'".....
大牛能不能把你的回复写完整一下啊,我愚钝没有看懂。这是我的思路
/**更新某行某列的数据**/
        char sql11[256];
         int updatechar[2]={30,208};
           sprintf(sql11,"update test_table set age='%d',hight='%d' where name='ll'",updatechar[0],updatechar[1]);

             // printf("%s\n",sql11);

                 int tem11=sqlite3_exec(db,(const char *)sql11,0,0,&errmsg);
                        if(tem11!=SQLITE_OK)
                           perror("sqlite3_errmsg");
但是现在我想知道的是直接简单点的,比喻说SQL语句有么有其他的方法!
WWWWA 2012-12-13
  • 打赏
  • 举报
回复
字符串累加生成SQL语句的方法 将read(fd,buff,leangth)取得的内容赋值变量,生成SQL语句再执行 char *sql10="update test_table set age='"+变量+"'".....

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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