C 语言 数据库编程,查询语句:select 语句 where 条件匹配字符串

时间:2023-01-30 21:42:15
比方说:char name[]="~~~"
              char address[]="~~~~~~~";
 查询语句:select * from 表 where 姓名=name and 地址=address 怎么写???
使用的是数组名!!!

7 个解决方案

#1


char querystring[1024];
sprintf(querystring, "select * from 表 where 姓名=\"%s\" and 地址=\"%s\" ", name, address);

#2


太棒了!刚才问了我们的头儿,他也这么回答的!谢谢啦!

#3


Quote: 引用 1 楼 piaobotudou 的回复:

char querystring[1024];
sprintf(querystring, "select * from 表 where 姓名=\"%s\" and 地址=\"%s\" ", name, address);

为什么要加 \ 呢?这样写呢?
sprintf(querystring, "select * from 表 where 姓名= %s and 地址= %s", name, address);

#4


引用 3 楼 u010807846 的回复:
Quote: 引用 1 楼 piaobotudou 的回复:

char querystring[1024];
sprintf(querystring, "select * from 表 where 姓名=\"%s\" and 地址=\"%s\" ", name, address);

为什么要加 \ 呢?这样写呢?
sprintf(querystring, "select * from 表 where 姓名= %s and 地址= %s", name, address);
这个\是转移字符表示其后的字符有特定意义,也就是加上这个以后生成的字符串里会用双引号包围姓名和地址字符串,不加\的话这个编译不通过,因为编译器将双引号当做区分字符串的功能了

#5


哦!明白啦!谢谢

#6


select语句中的字符串用单引号而不是用双引号括住吧。

#7


作为一个C程序员,对
 scanf,sscanf,fscanf
 printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。

#1


char querystring[1024];
sprintf(querystring, "select * from 表 where 姓名=\"%s\" and 地址=\"%s\" ", name, address);

#2


太棒了!刚才问了我们的头儿,他也这么回答的!谢谢啦!

#3


Quote: 引用 1 楼 piaobotudou 的回复:

char querystring[1024];
sprintf(querystring, "select * from 表 where 姓名=\"%s\" and 地址=\"%s\" ", name, address);

为什么要加 \ 呢?这样写呢?
sprintf(querystring, "select * from 表 where 姓名= %s and 地址= %s", name, address);

#4


引用 3 楼 u010807846 的回复:
Quote: 引用 1 楼 piaobotudou 的回复:

char querystring[1024];
sprintf(querystring, "select * from 表 where 姓名=\"%s\" and 地址=\"%s\" ", name, address);

为什么要加 \ 呢?这样写呢?
sprintf(querystring, "select * from 表 where 姓名= %s and 地址= %s", name, address);
这个\是转移字符表示其后的字符有特定意义,也就是加上这个以后生成的字符串里会用双引号包围姓名和地址字符串,不加\的话这个编译不通过,因为编译器将双引号当做区分字符串的功能了

#5


哦!明白啦!谢谢

#6


select语句中的字符串用单引号而不是用双引号括住吧。

#7


作为一个C程序员,对
 scanf,sscanf,fscanf
 printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。