系统:Ubuntu11.04
1.刚安装完系统是没有mysql数据库的,首先我们要安装mysql数据库:
sudo apt-get install mysql-server-5.1
自动的,mysql就安装好了(包含server和client)。
2.需要用c语言去操作mysql,我们需要安装mysql的c语言开发包:
sudo apt-get install libmysqlclient16-dev
到现在你已经能用c语言操作mysql数据库了!
注意:程序中要加入头文件: #include <mysql/mysql.h>
编译时别忘了连接库: gcc -o a a.c -lmysqlclient
3.c语言集成开发环境(IDE)中,比较喜欢codeblocks,安装codeblocks:
sudo apt-get install codeblocks
在codeblocks中的Settings->Compiler and debugger->Linker settings中加入mysqlclient,这样IDE编译时就会自动连接mysqlclient库了。
使用codeblocks的好处在于其函数提示功能!这是vi编辑器不能比拟的 !
4.具体操作数据库的过程,参考下面程序,该程序是从其他地方拷贝来的:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <mysql/mysql.h> // MySQL头文件 int main(int argc, char *argv[]) { int t, r; char *query; MYSQL *conn_ptr; MYSQL_RES *res; MYSQL_ROW row; // 初始化一个类型为MYSQL的数据结构 conn_ptr = mysql_init(NULL); if (!conn_ptr) { fprintf(stderr, "mysql_init failed\n"); return EXIT_FAILURE; } // 与MySQL数据库引擎建立连接。 conn_ptr = mysql_real_connect(conn_ptr, "localhost", "root", "root", "test", 0, NULL, 0); if (conn_ptr) { printf("Connection success\n"); } else { printf("Connection failed\n"); } query = "select * from stu"; // 执行query字符串中的SQL语句 t = mysql_real_query(conn_ptr, query, (unsigned int)strlen(query) ); if (t) { printf("Error making query: %s\n", mysql_error(conn_ptr)); } else { printf("Query made...\n"); } /* 获取语句执行的返回结果。(第一种) res=mysql_store_result(conn_ptr); for(r = 0; r <= mysql_num_rows(conn_ptr); r++) { // 取回结果集中的下一条记录 。 row = mysql_fetch_row(res); if(row < 0) break; // 获得一条记录中的各个字段 for(t = 0; t < mysql_num_fields(res); t++) { printf("%s ",row[t]); } printf("\n"); } */ /* 获取语句执行的返回结果。(第二种) res = mysql_use_result(conn_ptr); while(row = mysql_fetch_row(res)) { for (t = 0; t < mysql_num_fields(res); t++) { printf("%s ", row[t]); } printf("\n"); } */ //上面是两种获取结果的方法,都是正确的! //第一种用mysql_store_result()把结果集拷贝倒客户端,然后再操作。 //第二种没有拷贝,而是一条记录一条记录的从服务器读取。 //MySQL参考手册中的函数说明: // mysql_store_result() 检索完整的结果集至客户端。 // mysql_use_result() 初始化逐行的结果集检索。 mysql_close(conn_ptr); return 0; }