📄 mysqltest.c
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>/*#include <pwd.h>*/#include "mysql.h" #define FILENAME "mysqltest"#define HOST_SIZE 16#define USER_SIZE 16#define PWD_SIZE 16#define DB_SIZE 16#define SQL_SIZE 100/*向服务器发送并执行 "p_sql"指向的SQL语句。并在屏幕上显示服务器返回的结果。*/void sql_query(MYSQL *conn, char *p_sql){ MYSQL_RES *res; MYSQL_ROW row; int n; unsigned int num_rows; unsigned int num_fields; if (mysql_real_query(conn, p_sql, strlen(p_sql))) { fprintf(stderr, "%s\n", mysql_error(conn)); }else { /*Select语句*/ res = mysql_use_result(conn); if (res) { /*从结果集中读出结果并显示*/ num_fields = mysql_num_fields(res); while ((row = mysql_fetch_row(res))) { n = 0; while (n<num_fields) { printf("%s\t", row[n]); n++; } printf("\n"); } printf("%lu rows total.\n", (unsigned long) mysql_num_rows(res)); mysql_free_result(res); }else { if (mysql_field_count(conn) == 0) { /*其他SQL语句*/ num_rows = mysql_affected_rows(conn); printf("Query OK, %d rows affected.\n", num_rows); }else { fprintf(stderr, "Error: %s\n", mysql_error(conn)); } } }}/*主函数:命令行参数:mysqltest [服务器地址 [用户名]]*/int main(int argc, char *argv[]){ /*mysql_library_init();*/ char p_host[HOST_SIZE]; /* server address /= "localhost";*/ char p_user[USER_SIZE]; /* user name /= "root";*/ char p_pwd[PWD_SIZE]; /* password /= "";*/ char p_db[DB_SIZE] = ""; /* database /= "mysql"; ;*/ char p_sql[SQL_SIZE]; /* SQL = "select user,host from user";*/ MYSQL conn; if (argc == 1) { printf("MYSQL Server's addr:"); scanf("%s",p_host); printf("user:"); scanf("%s",p_user); strcpy(p_pwd, getpass("password:")); getchar(); }else if (argc == 2) { strcpy(p_host, argv[1]); printf("user:"); scanf("%s",p_user); strcpy(p_pwd, getpass("password:")); getchar(); }else if (argc == 3) { strcpy(p_host, argv[1]); strcpy(p_user, argv[2]); strcpy(p_pwd, getpass("password:")); }else { puts("Too many argument."); exit(1); } /*printf("database:"); scanf("%s", p_db);*/ /*初始化、连接Mysql服务器*/ mysql_init(&conn); mysql_options(&conn, MYSQL_READ_DEFAULT_GROUP, FILENAME); fputs("Waiting for MYSQL server to answer...\n", stderr); if (!mysql_real_connect(&conn, p_host, p_user, p_pwd, p_db, 0, NULL, 0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&conn)); exit(1); }else { puts("Succeed to connect to MySQL Server.\n"); } /*输入SQL语句,发送给服务器并返回结果*/ while (1) { printf("MySQL>"); fflush(NULL); fgets(p_sql, SQL_SIZE, stdin); /*scanf("%s[^\n]", p_sql);*/ /*输入exit或quit退出*/ if (!strncmp(p_sql, "exit", 4) || !strncmp(p_sql, "quit",4)) { puts("Bye!"); break; } /*SQL语句*/ if (strlen(p_sql) != 1) { sql_query(&conn,p_sql); }else { continue; } } mysql_close(&conn); /*mysql_library_end();*/ return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -