C语言操作MYSQL函数
头文件:#include<mysql/mysql.h>
连接:
MYSQL *mysql;//一个新的数据结构,服务器的句柄表示符号
mysql=MYSQL *mysql_init(NULL);//初始化
void *mysql_real_connect(mysql,HOST,USER,password,database,0,NULL,0);
//mysql:句柄
//HOST:数据库服务所在的服务器的名称或IP地址
//USER:登录数据的用户
//password:用户登录密码
//database:具体的数据库名
//第一个0:端口号,可以写默认端口3306
//若返回值为NULL,则连接失败
信息错误处理:
char *mysql_error(MYSQL *conn);
//获取连接数据库可能发生的错误信息
mysql_real_query():
- 函数原型:
int mysql_real_query(MYSQL *mysql,const char *query,unsigned int length);
-
说明:
- 执行由query指向的SQL查询,他应该是一个length个字节的字符串。查询必须由一个单个的SQL语句组成。
- 对于一个包含二进制数据的查询,你必须使用
mysql_real_query()
而不是mysql_query()
,因为二进制代码数据可能包含‘\0’字符,而且mysql_real_query()
比mysql_query()
快,因为它查询字符串调用strlen()。
-
执行情况 返回值 查询成功 0 查询失败 非0 -
错误 解释 CR_COMMANDS_OUT_OF_SYNC 命令以一个不适当的次序被执行 CR_SERVER_GONE_ERROR MySQL服务器关闭了 CR_SERVER_LOST 对服务器的连接在查询期间失去 CR_UNKNOWN_ERROR 发生一个未知的错误
检查受影响的行数:
my_ulonglong mysql_affected_rows(MYSQL *connection);
//my_ulonglong:无符号长整形,为%lu格式
//这个函数返回受之前执行update,insert或delete查询影响的行数
//如果返回值为0,结果就是没有受到影响