Ubuntu下用C直接操作Mysql資料庫的方法
ubuntu下用C直接操作Mysql資料庫的方法
轉載自:http://hi.baidu.com/wdr_cloud/item/7d87e609102b24943d42e251
以下內容僅供個人學習之用,切勿挪用他途。
首先安裝好mysql,一般情況下是沒有mysql.h這個標頭檔案的。
sudo apt-get install mysql-server mysql-client
sudo apt-get install libmysqlclient15-dev
安裝好後,用find查詢mysql.h的路徑
example:/usr/include/mysql/mysql.h(我的是在這個路徑下)
1,使用c語言操作mysql之前,先在mysql裡頭建立一個數據庫,一個表,在表裡頭新增資料如下:
建立資料庫,庫名為wang:
mysql>create database wang;
建立表,表名為:
mysql>use wang;
mysql>create table stu(sno int,fname varchar(20),age int);
新增資料:
insert into stu values(1,"dingding",24);
insert into stu values(2,"wang",22);
2 ,下面進行具體的操作
插入:insert.c
#i nclude <stdio.h>
#i nclude <stdlib.h>
#i nclude "/usr/include/mysql/mysql.h"
int main(int argc, char *argv[])
{
MYSQL my_connection;
int res;
mysql_init(&my_connection);
if (mysql_real_connect(&my_connection, "localhost", "root", "","wang",0,NULL,CLIENT_FOUND_ROWS))
{
printf("Connection success\n");
res = mysql_query(&my_connection, "insert into stu values(3,'apple',21)");
if (!res)
{
printf("Inserted %lu rows\n",(unsigned long)mysql_affected_rows(&my_connection));
}
else
{
fprintf(stderr, "Insert error %d: %s\n",mysql_errno(&my_connection),mysql_error(&my_connection));
}
mysql_close(&my_connection);
}
else
{
fprintf(stderr, "Connection failed\n");
if (mysql_errno(&my_connection))
{
fprintf(stderr, "Connection error %d: %s\n",mysql_errno(&my_connection),mysql_error(&my_connection));
}
}
return EXIT_SUCCESS;
}
編譯:
gcc -o insert insert.c -l mysqlclient
./insert
Connection Success
Inserted 1 rows
我們只要把上面的程式碼中的
res = mysql_query(&my_connection, "insert into stu values(3,'apple',21)");
換成
res = mysql_query(&my_connection, "update stu set age=19 where sno>2 ");
即可