——国外有一篇博客写得挺好,有一些小错误,改正以后翻译过来,发这里了。
C++是一个效率非常高的编程语言
Linux 是一个类Unix操作系统,它促进了开源软件社区的发展,并且用这些开源软件就几乎足以构建一个复杂精妙的企业系统。
MySQL是一个流行的多线程、多用户的数据库管理系统,全球有超过1000万的安装量。
这篇文章将演示如何在Linux下用C++连接MySQL。
首先我们需要将所需要的头文件和库全部包含进来
#include <stdio.h>
#include <mysql.h>
然后我们来定义一下main函数
int main()
{
// code
return 0;
};
然后我们定义一下需要用到的变量,你应该将这些写到main函数里去。
MYSQL_RES *result;
MYSQL_ROW row;
MYSQL *connection, mysql;
int state;
既然要使用MySQL数据库,我们首先就得连上它,使用下面的代码即可:
mysql_init(&mysql);
connection = mysql_real_connect(&mysql,host,usr,pswd,database,0,0,0);
其中
host – 数据库所在主机的名字,比如 “localhost” 或者 “192.168.250.100”
usr – 连接数据库时使用的用户名
pswd – 连接数据库时使用的密码
database – 数据库的名称
如果有错误发生,如用户名/密码不匹配,我们可以通过以下代码获取到错误信息:
if (connection == NULL)
{
printf(“%s\n”, mysql_error(&mysql));
return 1;
}
如果没有错误,那么证明我们连接好了,现在我们来执行一个简单的查询语句,其中mytable指的是你指定的数据库中的一张表名:
state = mysql_query(connection, “SELECT * FROM mytable”);
if (state !=0)
{
printf(“%s\n”, mysql_error(connection));
return 1;
}
如果成功执行,我们可以使用一个变量来存储查询结果:
result = mysql_store_result(connection);
使用mysql_num_rows函数,我们可以得到查询结果的条数:
printf(“Rows:%lld\n”,mysql_num_rows(result));
使用mysql_fetch_row在while循环中处理每一条查询结果:
while ( ( row=mysql_fetch_row(result)) != NULL )
{
printf(” %s, %s\n”, (row[0] ? row[0] : “NULL”), (row[1] ? row[1] : “NULL” ));
}
最后,别忘了释放内存:
mysql_free_result(result);
mysql_close(connection);
IMPORTANT!!! How to make this code under Linux?
重要!!!!在Linux中怎样编译上面的代码呢?
g++ test.cpp -I/usr/local/mysql/include /usr/local/mysql/lib/libmysqlclient.so
路径有可能不同,修改为自己的即可。
/usr/local/mysql/include 中含有mysql.h等头文件
/usr/local/mysql/lib/libmysqlclient.so 这个动态链接库也是需要的
Enjoy!
为什么在文中没找到原文链接2333
好早的了,忘记当时是哪一篇。这一篇估计都过时了。