应该将MySQL的头文件以及操作的库文件一并拷贝到工程文件中,这样即使移植到别的安装有MySQL电脑或服务器,就不需要重新定位头文件以及相关的库文件,直接操作访问数据库。
1、移植MYSQL头文件
在linux中构建的Makefile工程要安装libmysqlclient-dev才能使用API接口的头文件。
命令:sudo apt-get install libmysqlclient-dev
安装好后的头文件在:/usr/include/mysql
Windows的MySQL头文件即在安装目录里面。
MySQL头文件:C:\Program Files\MySQL\MySQL Server 5.7\include\
2、mysql的demo代码
#include <my_global.h>
#include <mysql.h>
int main(int argc, char **argv)
{
MYSQL *conn;
MYSQL *MySQLConRet = NULL;
MYSQL_RES *result;
MYSQL_ROW row;
int num_fields;
//初始化与连接数据库
conn = mysql_init(NULL);
MySQLConRet = mysql_real_connect(conn, "localhost", "user", "password", "testdb", 0, NULL, 0);
if ( MySQLConRet == NULL )
{
printf("connect is fail.please check......\n");
}
printf("MySQL Connection Info: %s \n", mysql_get_host_info(conn));
printf("MySQL Client Info: %s \n", mysql_get_client_info());
printf("MySQL Server Info: %s \n", mysql_get_server_info(conn));
//查询数据库
mysql_query(conn, "SELECT * FROM Student");
result = mysql_store_result(conn);
num_fields = mysql_num_fields(result);
//打印查询结果
while ((row = mysql_fetch_row(result)))
{
for(int i = 0; i < num_fields; i++)
{
printf("%s ", row[i] ? row[i] : "NULL");
}
printf("\n");
}
mysql_free_result(result);
mysql_close(conn);
}
编译命令:
root@destiny:/home/temp# gcc -o mysql mysql.c `mysql_config --cflags` `mysql_config --libs`
运行:
root@destiny:/home/temp# ./mysql