mysql入门之动态sql工具实现
集体看代码,而且在应用程序里面解决了backup回显的问题
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <dlfcn.h> #include <mysql> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <errno.h> #include <termios.h> #include <mysql> #include <termios.h> struct termios oldterm; void setstty2()//设置输入退格键,不回显 { //system("stty erase ^H");//执行shell命令,也可以 用来设置读取用户键盘输入的时候,退格键不回显 struct termios term; if(tcgetattr(STDIN_FILENO, &term) == -1)//得到系统termion的设置 { printf("tcgetattr error is %sn", strerror(errno)); return; } oldterm = term;//保留当前termios设置,以便程序退出的时候可以恢复termios /* term.c_lflag &= ~ICANON;//取消ICANON选项(不规范输入) term.c_lflag |= ICANON;//设置ICANON选项(规范输入) term.c_cc字段为要设置的具体特殊输入字符,如c_cc[VERASE]代表退格键, term.c_cc[VERASE] = 'b';意思为把退格键修改为'b' VERASE代表向前擦出一个字符,VINTR代表发送ctrl + C中断信号,ctrl + c的ASCII码为3 例如:term.c_cc[VINTR] = 't';意思为将tab键设置为终端信号 tcsetattr中,第二个参数说明,TCSAFLUSH:发送了所有输出后更改才生效,在更改发生时,未读取的所有输入数据都被删除 TCSANOW:更改立即生效 TCSADRAIN:发送了所有输出后更改才发生,如果更改输出参数则应该使用该选项 */ term.c_cc[VERASE] = 'b';//'b'为退格键的ASCII码 if (tcsetattr(STDIN_FILENO, TCSANOW, &term) == -1)//设置系统termion { printf("tcsetattr error is %sn", strerror(errno)); } return; } void setstty()//设置输入退格键,不回显 { system("stty erase ^H");//执行shell命令,也可以 用来设置读取用户键盘输入的时候,退格键不回显 } void returnstty()//恢复系统的termios设置 { if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &oldterm) == -1)//设置系统termion { printf("tcsetattr error is %sn", strerror(errno)); } return; } int main(int arg, char *args[]) { int ret = 0, i=0; MYSQL mysql; MYSQL *connect; MYSQL_RES *result; MYSQL_ROW row; MYSQL_FIELD *fields; unsigned int num_fields; if (arg "); //write(STDOUT_FILENO, buf, strlen(buf)); //memset(buf, 0, sizeof(buf)); //read(STDIN_FILENO, buf, sizeof(buf)); printf("nmysql>"); gets(buf); /* EXIT(exit):退出 */ if ( 0 == strncmp(buf , "exit" , 4) || 0 == strncmp(buf , "EXIT" , 4) || 0 == strncmp(buf , "quit" , 4) || 0 == strncmp(buf , "QUIT" , 4) ) { break; } //printf("buf:%s n", buf); ret = mysql_query(connect, buf); if (ret != 0 ) { printf("func mysql_query() err: %s", mysql_error(&mysql) ); continue; } else { //printf("okn"); } if ( (strncmp(buf, "select", 6) == 0) || (strncmp(buf, "SELECT", 6) == 0) || (strncmp(buf, "show", 4) == 0) || (strncmp(buf, "SHOW", 4) == 0) || (strncmp(buf, "desc", 4) == 0) || (strncmp(buf, "DESC", 4) == 0) ) { //获取查询结果 result = mysql_store_result(&mysql); //获取列表头信息信息 fields = mysql_fetch_fields(result); num_fields = mysql_num_fields(result); for (i=0; i<num_fields><p>以上就是mysql入门之动态sql工具实现的内容,更多相关内容请关注PHP中文网(www.php.cn)!</p></num_fields></termios.h></mysql></termios.h></errno.h></string.h></unistd.h></stdlib.h></stdio.h></mysql></dlfcn.h></string.h></stdlib.h></stdio.h>
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END