MySQL入门之动态SQL工具实现

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, &amp;term) == -1)//得到系统termion的设置      {          printf("tcgetattr error is %sn", strerror(errno));          return;      }      oldterm = term;//保留当前termios设置,以便程序退出的时候可以恢复termios      /*      term.c_lflag &amp;= ~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, &amp;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, &amp;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&gt;");          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(&amp;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(&amp;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
喜欢就支持一下吧
点赞12 分享