⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysqltest.c

📁 使用Mysql 的C语言API函数编写的连接Mysql服务器并发送基本的操作指令。
💻 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 + -