c++操作mysql - 连接
来源:互联网 发布:施工计划横道图软件 编辑:程序博客网 时间:2024/05/18 03:13
c++连接mysql的主要是通过mysql的c API来实现 。
连接的API有两个,下面会分别描述:
1. mysql_connect()
(原型)ProtoType: MYSQL *mysql_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd)
描述:
该函数已过时。最好使用mysql_real_connect()取而代之。
mysql_connect()试图建立与运行在主机(远程主机也可以)上的MySQL数据库引擎的连接。在能够执行任何其他API函数之前,必须先调用mysql_connect(),而且返回成功。但mysql_get_client_info()例外。
这些参数的意义与mysql_real_connect()的对应参数的意义相同,差别在于连接句柄可以为NULL。在这种情况下,C API将自动为连接结构分配内存,并当调用mysql_close()时释放分配的内存。该方法的缺点是,如果连接失败,你无法检索错误消息。要想从mysql_errno()或mysql_error()获得错误消息,必须提供有效的MYSQL指针。
返回值: NULL表示失败。反之成功。
2. 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()必须被调用并返回成功。
参数说明:
· 第1个参数应是已有MYSQL结构的地址。调用mysql_real_connect()之前,必须调用mysql_init()来初始化MYSQL结构。
通过mysql_options()调用,可更改多种连接选项。
·
host的值必须是主机名或IP地址。如果host是NULL或字符串"localhost",连接将被视为与本地主机的连接。如果操作系统支持套接字(Unix)或命名管道(Windows),将使用它们而不是TCP/IP连接到服务器。
·
user参数包含用户的MySQL登录ID。如果user是NULL或空字符串"",用户将被视为当前用户。在UNIX环境下,它是当前的登录名。在Windows ODBC下,必须明确指定当前用户名。请参见26.1.9.2节,“在Windows上配置MyODBC DSN”。
·
passwd参数包含用户的密码。如果passwd是NULL,仅会对该用户的(拥有1个空密码字段的)用户表中的条目进行匹配检查。这样,数据库管理员就能按特定的方式设置MySQL权限系统,根据用户是否拥有指定的密码,用户将获得不同的权限。
注释:调用mysql_real_connect()之前,不要尝试加密密码,密码加密将由客户端API自动处理。
·
db是数据库名称。如果db为NULL,连接会将默认的数据库设为该值。当你不想连接特定数据库时,可以指定db为NULL
·
如果“port”不是0,其值将用作TCP/IP连接的端口号。注意,“host”参数决定了连接的类型。port为0的话,使用mysql的默认tcp/ip端口3306.
·
如果unix_socket不是NULL,该字符串描述了应使用的套接字或命名管道。注意,“host”参数决定了连接的类型。
·client_flag的值通常为0,但是,也能将其设置为下述标志的组合,以允许特定功能:
标志名称
标志描述
CLIENT_COMPRESS
使用压缩协议。
CLIENT_FOUND_ROWS
返回发现的行数(匹配的),而不是受影响的行数。
CLIENT_IGNORE_SPACE
允许在函数名后使用空格。使所有的函数名成为保留字。
CLIENT_INTERACTIVE
关闭连接之前,允许interactive_timeout(取代了wait_timeout)秒的不活动时间。客户端的会话wait_timeout变量被设为会话interactive_timeout变量的值。
CLIENT_LOCAL_FILES
允许LOAD DATA LOCAL处理功能。
CLIENT_MULTI_STATEMENTS
通知服务器,客户端可能在单个字符串内发送多条语句(由‘;’隔开)。如果未设置该标志,将禁止多语句执行。
CLIENT_MULTI_RESULTS
通知服务器,客户端能够处理来自多语句执行或存储程序的多个结果集。如果设置了CLIENT_MULTI_STATEMENTS,将自动设置它。
CLIENT_NO_SCHEMA
禁止db_name.tbl_name.col_name语法。它用于ODBC。如果使用了该语法,它会使分析程序生成错误,在捕获某些ODBC程序中的缺陷时,它很有用。
CLIENT_ODBC
客户端是ODBC客户端。它将mysqld变得更为ODBC友好。
CLIENT_SSL
使用SSL(加密协议)。该选项不应由应用程序设置,它是在客户端库内部设置的。
{//判断连接是否失败。
printf("Failed to connect to database: Error: %s/n", mysql_error(&mysql));
}
- Linux C语言连接MySQL 增删改查操作
- C连接MySQL执行插入操作(1)
- C连接MySQL执行插入操作(2)
- Linux C语言连接MySQL 增删改查操作
- Linux C语言连接MySQL 增删改查操作
- Linux C语言连接MySQL 增删改查操作
- C 语言连接mysql 执行 增、删、改、查、操作
- Linux C语言连接MySQL 增删改查操作
- Linux C语言连接MySQL 增删改查操作
- C/C++连接MySQL数据库和查询操作案例!!
- [C++]MYSQL 数据库操作封装及连接池实现
- c++操作mysql - 连接
- VC连接MySql操作
- vbscript连接操作mysql
- mysql连接数操作
- c++操作mysql - 连接
- C#连接操作mysql
- python连接Mysql操作
- django+python开发的网站怎么静态引用img图片
- [Python] 实现网络爬虫
- 解决TOMCAT支持J2EE版本问题
- Openfire之Spark开发环境搭建
- OpenGL入门示例4——黑色背景绘制彩色点画线
- c++操作mysql - 连接
- vim 中文乱码
- 一个域名对网站的价值分析
- uva oj 10300
- 三大框架的工作原理(Strut1,Strut2,Hibernate,Spring)——初学篇
- 80端口被system进程占用
- 基于NPAPI插件开发
- java Web 面试题
- 使用DownloadManager 自动更新apk