1.工程配置
包含头文件
mysql.h
导入库libmysql.lib
2.mysql_init
MYSQL结构代表一个连接句柄
MYSQL *mysql_init(MYSQL *mysql) ;
如果mysql是NULL指针,该函数将分配、初始化、并返回新对象。否则,将初始化对象,并返回对象的地址。如果mysql_init()分配了新的对象,当调用mysql_close()来关闭连接时。将释放该对象。
my_bool reconnect = true;
mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect); //设置
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "gbk");
mysql_real_connect //连接
MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)
mysql_query //查询
int mysql_query(MYSQL *mysql, const char *query)
mysql_affected_rows //改变的行数
mysql_store_result //返回结果
mysql_num_fields //列字段数量
mysql_num_rows //行数
mysql_fetch_field //列字段指针
mysql_fetch_row //行指针
mysql_free_result //释放结果
#include <Windows.h>
#include <mysql.h>
#include <stdio.h>
int main(void)
{
// 初始化一个连接句柄MYSQL
MYSQL* mysql;
mysql = mysql_init(NULL);
if (mysql == NULL)
{
printf("error: %s\n", mysql_error(mysql));
return 1;
}
my_bool reconnect = true;
mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect);
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "gbk");
if ( !mysql_real_connect(mysql, "XX", "XX", "XX", "XX", 0, NULL, 0) ) //主机名,用户名,密码,数据库
{
printf("error:%s\n", mysql_error(mysql));
return 1;
}
int result;
result=mysql_query(mysql, "insert into emp values(8888, 'YYYY', 'CLERK', 7782, '1982-01-23', 1300, null, 30)");
if (result != 0)
{
printf("error:%s\n", mysql_error(mysql));
return 1;
}
printf("%llu 行受影响\n ", mysql_affected_rows(mysql));
result = mysql_query(mysql, "select * from emp where deptno=30;");
if (result != 0)
{
printf("error:%s\n", mysql_error(mysql));
return 1;
}
MYSQL_RES* mysql_res;
MYSQL_FIELD* mysql_field;
MYSQL_ROW mysql_row;
unsigned int cols;
mysql_res = mysql_store_result(mysql);
cols = mysql_num_fields(mysql_res);
if (mysql_res)
{
printf("返回%llu行\n", mysql_num_rows(mysql_res));
while((mysql_field = mysql_fetch_field(mysql_res)))
{
printf("%s\t", mysql_field->name);
}
printf("\n");
while((mysql_row = mysql_fetch_row(mysql_res)))
{
for (unsigned int i = 0; i < cols; ++i)
{
printf("%s\t", mysql_row[i] ? mysql_row[i] : "NULL");
}
printf("\n");
}
mysql_free_result(mysql_res);
}
mysql_close(mysql);
return 0;
}