用C++和MySQL的连接中遇到的问题总结
最近接触到很多数据库已经接触过SQL Server,但因为项目需要开始连接到MySQL。让我这个菜鸟下一次体验吧。对于C++连接MySQL,我不想下载一个软件mysqlodbc太多,所以一个MySQL的API函数的使用。
1。连接API,您需要加载MySQL头文件和库文件。
添加 MySQL服务器MySQL 5.1 包括VS2010附加包含目录。看它所在的目录下安装mysql。复制libmysql.dll和libmysql.lib文件的建设项目目录,包含的头文件的内容:
需要的头文件和库文件
#包括Winsock的。
#包括MySQL。H
#语用评论(库,libmysql。库)
2。编码
(1)连接mysql数据库
数据源指针MySQL m_sqlcon在头文件中定义。
数据库连接
尝试
{
mysql_init(m_sqlcon);
根 / /本地:服务器帐号密码数据库名称测试3306端口
如果(!mysql_real_connect(m_sqlcon,localhost
{
AfxMessageBox(_t(数据库连接失败!
返回false;
}
返回true;
}
抓住(…)
{
返回false;
}
(2)关闭数据库
mysql_close(m_sqlcon);
(3)创建一个表
char * pquery =如果不存在ds_building创建表(ID varchar(10),(255),255名为varchar)。
如果(mysql_real_query(m_sqlcon(单元),pquery,strlen(pquery))!= 0)
{
const char* pch = mysql_error(m_sqlcon);
返回false;
}
与MySQL的API接口:
1.mysql_affected_rows()返回的最新更新,受影响的行数的删除或插入查询。
2.mysql_close()关闭服务器连接。
3.mysql_connect()连接到MySQL服务器,这个功能是不推荐使用;相反,mysql_real_connect()。
4.mysql_change_user()的变化,在一个开放的连接用户和数据库。
5.mysql_create_db()创建一个数据库。此功能不推荐;和创建数据库的SQL命令的使用。
6.mysql_data_seek()中搜索查询结果任意行集。
7.mysql_debug()使一个给定的字符串dbug_push。
8.mysql_drop_db()丢弃数据库。此功能不推荐;和删除数据库的SQL命令的使用。
9.mysql_dump_debug_info()让服务器写入调试信息到日志文件。
10.mysql_eof()来确定是否一个结果集的最后一行被读取。这个功能是相对的;mysql_errno mysql_error()或()可以用相反的。
11.mysql_errno()返回最近调用MySQL函数的错误数。
12.mysql_error()返回最近调用MySQL函数错误消息。
13.mysql_escape_string()的字符串,用于SQL语句中的特殊字符。
14.mysql_fetch_field()返回下一个表的字段类型。
15.mysql_fetch_field_direct()返回一个表的字段类型和字段数了。
16.mysql_fetch_fields()返回所有字段结构数组。
17.mysql_fetch_lengths()返回当前行中的所有列的长度。
18.mysql_fetch_row()获取下一行的结果集。
19.mysql_field_seek()把光标定位在一个指定的栏柱。
20.mysql_field_count()返回的查询结果的列数。
21.mysql_field_tell()返回的最后一mysql_fetch_field领域的光标的位置()。
22.mysql_free_result()释放内存的结果集。
23.mysql_get_client_info()返回客户版本信息。
24.mysql_get_host_info()返回一个描述连接字符串。
25.mysql_get_proto_info()返回连接使用的协议版本。
26.mysql_get_server_info()返回服务器版本号。
27.mysql_info()返回的查询最近执行的信息。
28.mysql_init()获取或初始化一个MySQL数据库结构。
29.mysql_insert_id()返回为一个auto_increment柱前面的查询生成的ID。
30.mysql_kill()杀死一个给定线程。
31.mysql_list_dbs()返回一个简单的正则表达式匹配的数据库的名称。
32.mysql_list_fields()返回的列名称相匹配的一个简单的正则表达式。
33.mysql_list_processes()返回一个表的当前服务器线程。
34.mysql_list_tables()返回一个表的名称相匹配的一个简单的正则表达式。
列返回结果集的数量(重量35.mysql_num_fields)。
36.mysql_num_rows()返回一个结果集的行数。
37.mysql_options()设置mysql_connect连接选项()。
38.mysql_ping()检查是否连接到服务器是工作和重新连接,如果必要的话。
39.mysql_query()执行SQL查询,被指定为一个空结尾字符串。
40.mysql_real_connect()连接到MySQL服务器。
41.mysql_real_query()执行SQL查询,指定为一个计数字符串。
42.mysql_reload()告诉服务器重新安装授权表。
43.mysql_row_seek()搜索结果集的行,使用mysql_row_tell()的返回值。
44.mysql_row_tell()返回的行光标的位置。
45.mysql_select_db()连接到数据库。
46.mysql_shutdown()关闭数据库服务器。
47.mysql_stat()以字符串的形式返回的服务器状态。
48.mysql_store_result()得到一套完整的结果给客户。
49.mysql_thread_id()返回当前线程的ID。
50.mysql_use_result()初始化结果的检索结果集的一行一行。
遇到的问题:
在开始的时候,我用vs2015连接mysql。我发现分析外部符号的错误是不可能的。查看链接器花了很长时间,后来发现很长时间VS VS默认运行平台是32位,而我的MySQL是64位。这样,你只需要改变操作平台x64在项目属性配置管理。当然,你也可以把lib和DLL的下一mysql32点。
以上是由C++和MySQL连接引入Xiaobi遇到的问题总结。我们希望能帮助你。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。