描述背景
在写VS的MFC项目,要用到连接数据库的函数,学习了几天,现在记录一下。
API函数
1.mysql_real_connect(),如其名,是判断数据库是否真的连接的函数,连接成功返回Ture
//localhost:服务器地址,可以直接填入IP;root:账号;
//123:密码;test:数据库名;3306:网络端口
//m_sqlCon是MYSQL类型的
if (!mysql_real_connect(&m_sqlCon, "localhost", "root",
"123456", "test", 666, NULL, 0))
{
AfxMessageBox(_T("数据库连接失败!"));
return;
}
else//连接成功则继续访问数据库,之后的相关操作代码基本是放在这里面的
{
AfxMessageBox(_T("数据库连接成功!"));
}
2.mysql_store_result() 返回mysql_query()执行sql语句的查询结果集,是一个集合,一个记录的集
合,一个记录可以有很多的字段。返回为NULL,则是没有符合条件的记录。
使用方法:
MYSQL_RES *result;
result = mysql_store_result(&mysqlCon);//检查客户端处理后返回的结果集 查询结果都在result里了
3.mysql_fetch_row() 从结果集中获取下一行的记录,成功则返回一个数组,值大于0。比如一个
student表只有两个字段,用mysql_fetch_row() 获取查询成功的结果集,如果成功,则返回一个有
两个元素的数组。这个函数一般是用来遍历,与mysql_store_result() 搭配起来用。
MYSQL_RES *result;
MYSQL_ROW row;
result = mysql_store_result(&mysqlCon);//检查客户端处理后返回的结果集
while ((row = mysql_fetch_row(result)))//遍历结果集
4.mysql_query() 执行指定”以NULL终结的字符串”的sql查询。返回一个结果集,如果查询成功,可
以调用 mysql_num_rows() 来查看对应于 select 语句返回了多少行,或者调用
mysql_affected_rows() 来查看对应于 delete,insert,replace或 update语句影响到了多少行。
使用方法:
MYSQL_RES *result;
CString sql_select;
sql_select.Format("select * from student where name like \"%%%s%%\"and age like \"%%%s%%\" ", new_name, new_age);
mysql_query(&mysqlCon, (char*)(LPCTSTR)sql_select);
result = mysql_store_result(&mysqlCon);//检查客户端处理后返回的结果集 存储查询的结果
5.mysql_close()关闭数据库连接
6.mysql_num_fields() 返回结果集中一个记录的字段个数,也就是查询的这个表有多少个字段。
7.mysql_num_rows() 返回result结果集中有多少行,或者说有多少条记录。一般是看select语句的结
果。
result = mysql_store_result(&mysqlCon);//检查客户端处理后返回的结果集
int x = mysql_num_rows(result);
8 mysql_affected_rows() 查看delete,insert,update语句影响了多少行,返回值类型为int。