C语言中通过sprintf()函数构造sql语句
程序员文章站
2022-03-09 10:36:06
...
一、C语言如何构造sql
做项目时,由嵌入式开发慢慢涉及到后台开发,接触数据库慢慢就多了,一般情况下,sql
定义成一个char *
,或者一个字符数组,里面就写sql语句就行了。例如:
char *sql;
sql = "create table job_table(" \
"task_id int primary key not NULL," \
"point_tag int not NULL," \
"task_serial int," \
"device_tag int);";
表job_table
结构如下:
但是组成sql
插入变量该怎么办呢?
- 使用strcat将两个char类型链接
- sprintf()函数构造sql语句
第一种方式比较麻烦,还要将变量进行类系转换,记录下第二种方式
伪代码:
char* insertJob;
char sql[255];
int a=1;
int b=1;
int c=1;
int d=1;
insertJob = "INSERT INTO job_table (task_id,point_tag,task_serial,device_tag) VALUES (";
sprintf(sql,"%s%d%s%d%s%d%s%d%s",
insertJob,
a,
",",
b,
",",
c,
",",
d,
")");
二、sprintf()函数
int sprintf(char *str, const char *format, ...)
- 发送格式化输出到 str 所指向的字符串。
-
str
– 这是指向一个字符数组的指针,该数组存储了字符串。 -
format
– 这是字符串,包含了要被写入到字符串str
的文本。它可以包含嵌入的format
标签,format
标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format
标签属性是%[flags][width][.precision][length]specifier
- 如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。
format
中的specifier
则是最为常用与关注的
specifier(说明符) | 输出 |
---|---|
c | 字符 |
d或i | 有符号十进制整数 |
e | 使用 e 字符的科学科学记数法(尾数和指数) |
E | 使用 E 字符的科学科学记数法(尾数和指数) |
f | 十进制浮点数 |
g | 自动选择 %e 或 %f 中合适的表示法 |
G | 自动选择 %E 或 %f 中合适的表示法 |
o | 有符号八进制 |
s | 字符串 |
u | 无符号十进制整数 |
x | 无符号十六进制整数 |
X | 无符号十六进制整数(大写字母) |
p | 指针地址 |
n | 无输出 |
% | 字符 |
上一篇: 事务的四大隔离级别的实验
下一篇: 数据库复习(二)