mysql程式設計C語言vs mysql

2021-10-18 11:54:45 字數 3079 閱讀 3862

包含標頭檔案:

#inclde 「mysql.h」

編譯時指定頭檔案目錄和連線庫的目錄:

-i/usr/include/mysql -l/usr/lib64/mysql

幾種結構型別

mysql結構體1

42typedef struct st_mysql mysql;

mysql_res1

17typedef struct st_mysql_res mysql_res;

mysql_row1typedef char **mysql_row;

mysql_field1

23typedef struct st_mysql_field mysql_field;

程式設計步驟

初始化mysql_init(mysql *connection)

mysql的初始化函式,如果傳入的是null,它會返回乙個指向新分配的連線控制代碼指標

如果傳遞乙個已有的結構,它將被重新初始化。如果出錯,返回null

連線18mysql *mysql_real_connect(mysql *connection,

const char *server_host,

const char *sql_user_name,

const char *sql_password,

const char *db_name,

unsigned int port_number,

const char *unix_socket_name,

unsigned int client_flag);

server_host 可以是主機名,也可以是ip,如果是本機,直接是localhost

sql_user_name 和sql_password 分別為使用者名稱和密碼

port_number 和 unix_socket_name 分別預設為0 和null 一般是不用變得

client_flag 一般為0,但也可以傳入巨集值來實現特定的功能

執行mysql語句

int mysql_query(mysql *connection, const char *query)

int mysql_real_query(mysql *connection, const char *query, unsigned long length)

mysql_query() 預期的語句是指定的,由null終結的字串

mysql_real_query() 預期的是計數字串

如果字串中包含的二進位制資料其中可能包含null位元組,就必須使用mysql_real_query();

獲得上次執行結果

mysql_res *mysql_store_result(mysql *connection)

mysql_store_result是用來儲存結果,並返回結構體指標

mysql_row *mysql_fetch_row(mysql_res *res)

mysql_fetch_row每次呼叫返回結果的一行,每行也有多個結果,分別為row[0],row[1].

關閉連線

mysql_close(mysql *connection)

程式示例

查詢表,將結果列印出來1

58#include "mysql.h"

#define user "root"

#define passwd ""

#define sqlname "westos"

#define host "localhost"

#define tabname "student"

#define cmd_len 256

typedef struct person_person;

int (mysql *connect_handle, _person *person, int n)

char cmd[cmd_len];

int i = 0;

for(i = 0; i < n; ++i){

sprintf(cmd, "insert into %s value("%s", "%s", "%s")", tabname,

person[i].name, person[i].number, person[i].email);

mysql_query(connect_handle, cmd);

return 0;

int mysql_show_all(mysql *connect_handle)

mysql_res *res;

mysql_row row;

mysql_query(connect_handle, "select * from student");

res = mysql_store_result(connect_handle);

while(row = mysql_fetch_row(res)){

printf("%s %s %sn", row[0], row[1], row[2]);

return 0;

int main(int argc, char **ar**)

_person person[10];

mysql connect_handle;

mysql_res *res;

mysql_row row;

int i = 0;

mysql_init(&connect_handle);

mysql_real_connect(&connect_handle, host, user, passwd, sqlname, 0, null, 0);

for(i = 0; i < 2; ++i){

scanf("%s%s%s", person[i].name, person[i].number, person[i].email);

mysql_insert(&connect_handle, person, 2);

mysql_show_all(&connect_handle);

mysql_close(&connect_handle);

return 0;

C語言程式設計

輸入乙個字串其中包含一鐘特殊的字元 其餘都是數字比如 12?32 設這個數字為w 再輸入乙個同一長度的整形數字x 要求計算w大於x的個數 include include include include void main int detect char s return counter int co...

c語言程式設計

1.輸入乙個整數,把該整數分別按照八進位制 十進位制 十六進製制形式輸出 include stdio.h main 2.輸入乙個小數 整數部分3位 小數部分5位 把該小數分別按照以下格式輸出 小數部分4位寬度,整個數字8位寬度 include stdio.h main 小數部分3位寬度,整個數字9位...

C語言,程式設計

程式可以分為三種基本結構 順序結構,分支結構,迴圈結構 c程式的執行部分是由語句組成的,程式的功能也是由執行語句實現的,c語句可以分為以下五大類 表示式語句,函式呼叫語句,控制語句,復合語句,空語句 表示式語句 表示式加上分號 函式呼叫語句 由函式名,實際引數加上分號 一般形式為 函式名 引數 控制...