0准备
- 这时编译时所需要链接的库
1基础函数
1.1初始化
- 分配和初始化与mysql_real_connect() 相适应的MYSQL对象
- 如果mysql是NULL指针,该函数将分配,初始化,并返回新对象 否则将初始化对象,并返回对象地址,
- 如果mysql_init分配了新的对象,在结束时应该调用mysql_close来关闭连接,释放新对象
- 函数原型
MYSQL *mysql_init(MYSQL *mysql)
MYSQL* mysql=mysql_init(MYSQL *mysql);
if(mysql==NULL){
printf("mysql init error\n");
}
printf("mysql init success\n");
- 返回值
初始化MYSQL句柄,如果无足够内存分配新对象 返回NULL
1.2错误处理
unsigned mysql_errno(MYSQL *mysql)
char *mysql_error(MYSQL *mysql)
1.3建立连接
- 此函数尝试与运行的主机上的Mysql数据引擎进行连接,在你能够执行需要有效MYSQL连接局柄结构的任何其他API函数之前 此函数必须完成
- 函数原型
MYSQL *mysql_real_connect(MYSQL *mysql, |
const char* host, |主机名或ip
const char* user, |用户
const char* password, |用户密码
const char* db, |数据库名称
unsigned int port, |如果port不是零,将其值作为TCPIP的端口使用
const char* unix_socket, | 不是NULL 应使用的socket或者命名管道
unsigned long client_flag |通常传零
);
MYSQL *conn=mysql_real_connect(mysql,"locahost","root","123456","lvke",0,NULL,0);
if(conn==NULL){
printf("mysql connect error [%s]\n",mysql_error(conn));
}
- 返回值:如果连接成功 返回mysql连接局柄 若连接失败 返回NULL 对于成功的连接 返回值与第一个参数相同
1.4执行SQL语句
- 注意:mysql_query不能用于包含2进制的数据查询,查询2进制应该使用mysql_real_query,因为2进程可能包含\0 mysql_query会将其当作结束标志
- 函数原型
int mysql query(MYSQL* mysql,const char* stmt_str)
/执行sql语句
char *pSQL="insert into mytest values(5,'bj_cp')";
int ret=mysql_query(mysql,pSQL);
if(ret!=0){
printf("mysql query error [%s]\n",mysql_error