用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遇到的问题总结。我们希望能帮助你。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。