C语言访问MySQL
头文件
#include <mysql.h>
API
//通常传递NULL,返回一个指向连接句柄的指针;如果传进去一个已有的结构,它将被重新初始化
MYSQL mysql_init(MYSQL );
//连接数据库
MYSQL *mysql_real_connect(MYSQL *connection,//由mysql_init初始化的指针
const char *server_host,//主机名或者IP地址
const char *sql_user_name,
const char *sql_passwd,
const char *db_name,
unsigned int port_number,//mySQL默认为0
const char *unix_socket_name,//mySQL默认为NULL
unsigned int flags);
//断开连接
void mysql_close(MYSQL *connection);
//设置选项(在mysql_init()与mysql_real_connect()之间调用)
int mysql_options(MYSQL *connection, enum option_to_set, const char *argument);
//错误处理
unsigned int mysql_errno(MYSQL *connection);
char *mysql_error(MYSQL *connection);
//执行SQL语句
int mysql_query(MYSQL *connection,const char *query);
//返回受影响的行数
my_ulonglong mysql_affected_rows(MYSQL *connection);
有返回结果的处理
//一次提取所有数据,返回一个指向结果集的指针
MYSQL_RES *mysql_store_result(MYSQL *connection);
my_unlonglong mysql_num_rows(MYSQL_RES *result);//返回结果集中的行数
//从得到的结果集中获取一行
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);
//在结果集中跳转到第offset+1行(下次mysql_fetch_row调用时获取当前设置行)
void mysql_data_seek(MYSQL_RES *result,my_ulonglong offset);
//返回一个偏移量,标示当前结果集中的位置(并非当前行号,不能用于mysql_data_seek)
MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result);
//上述返回值可用于此函数
MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW offset);
//释放结果集
void mysql_free_result(MYSQL_RES *result);
//返回结果集中字段(列)的数目
unsigned int mysql_field_count(MYSQL *connection);
读取数据例子
//获取句柄
MYSQL my_connection;
mysql_init(&my_connection);
//真正连接数据库
mysql_real_connect(&my_connection,”localhost”,”用户名”,”密码”,”数据库名”,0,NULL,0);
//执行查找语句
mysql_query(&my_connection,”SELECT * FROM children”);
//获取所有返回结果
MYSQL_RES *res_prt;
res_ptr=mysql_store_result(&my_connection);
//逐行打印结果
MYSQL_ROW sqlRow;
unsigned int cols=mysql_field_count(&my_connection);
while((sqlRow=mysql_fetch_row(res_ptr))){
unsigned int i=0;
for(i=0;i<
cols;++i)
printf(“%s “,sqlRow[i]);
printf(“\n”);
}
//释放结果集,断开连接
mysql_free_result(res_ptr);
mysql_close(&my_connection);
编译时命令
gcc -o outputFileName inputSource.c -I /usr/include/mysql/ -lmysqlclient
记得下载mysql开发者文件。