目录
环境安装
apt-get install libmysqlclient-dev
在/usr/include/mysql/目录下的 mysql.h 是主要的 API 接口头文件
函数原型
mysql_init
MYSQL *mysql_init(MYSQL *mysql)
作用
- 分配或初始化与 mysql_real_connect()相适应的 MYSQL 对象。
- 如果 mysql 是 NULL 指针,该函数将分配、初始化、并返回新对象。否则,将初始化对象,并返回对象的地址。
- 如果 mysql_init()分配了新的对象,当调用 mysql_close()来关闭连接时。将释放该对象。
参数
mysql: 有两种情况,一般都采用第⑴种方法.
⑴ 参数传 NULL 值。
这种情况很显然,是 mysql_init() 函数内部申请了一片内存,然后返回了首 地址。
MYSQL *ms_conn = mysql_init(NULL);
用完记得要释放
mysql_close(ms_conn), ms_conn = NULL;
⑵ 参数传对象地址。
这种情况就是使用栈内存,mysql_init() 函数显然不应该给分配堆内存。
MYSQL ms_eg;
MYSQL *ms_conn = mysql_init(&ms_eg);
用完记得要释放
mysql_close(ms_conn), ms_conn = NULL;
返回值
初始化的 MYSQL*句柄。如果无足够内存以分配新的对象,返回 NULL。
错误
在内存不足的情况下,返回 NULL。
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_real_connect()尝试与运行在主机上的 MySQL 数据库引擎建立连接。
- 在你能 够 执 行 需 要 有 效 MySQL 连 接 句 柄 结 构 的 任 何 其 他 API 函 数 之 前 , mysql_real_connect()必须成功完成。
参数
mysql: MYSQL 结构的地址。调用 mysql_real_connect()之前,必须调用 mysql_init()来初始化 MYSQL 结构。
host: 必须是主机名或 IP 地址。如果“host”是 NULL 或字符串"localhost",连 接将被视为与本地主机的连接。
user:用户名
passwd: 用户的密码。如果“passwd”是 NULL,仅会对该用户的(拥有 1 个空密码字段的)用户表中的条目进行匹配检查。这样,数据库管理员就能按特定的方式设置 MySQL 权限系统,根据用户是否拥有指定的密码,用户将获得不同 的权限。
db: 数据库名称。如果 db 为 NULL,连接会将默认的数据库设为该值。
port: 如果“port”不是 0,其值将用作 TCP/IP 连接的端口号。注意,“host” 参数决定了连接的类型。
unix_socket: 如果 unix_socket 不是 NULL,该字符串描述了应使用的套接字或命 名管道。注意,“host”参数决定了连接的类型。
client_flag: 通常为 0,但是,也能将其设置为下述标志的组合,以允许特定功 能
标志名称 | 标志描述 |
---|---|
CLIENT_COMPRESS | 使用压缩协议。 |
CLIENT_FOUND_ROWS | 返回发现的行数(匹配的),而不是受影响的行数。 |