日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

c 调用mysql密码为空_C语言连MySQL - osc_srnunz15的个人空间 - OSCHINA - 中文开源技术交流社区...

發(fā)布時間:2024/9/27 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c 调用mysql密码为空_C语言连MySQL - osc_srnunz15的个人空间 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

連接例程

用C語言連接MySQL數(shù)據(jù)庫包含兩個步驟“

初始化一個連接句柄結(jié)構(gòu);

實(shí)際進(jìn)行連接。

初始化連接句柄

#include

MYSQL *mysql_init(MYSQL *);

通常傳遞NULL給這個例程,它會返回一個指向新分配的連接句柄結(jié)構(gòu)的指針。

如果傳遞一個已有的結(jié)構(gòu),它將被重新初始化。

出錯返回NULL。

連接

MYSQL *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 flags);

指針connection必須指向已經(jīng)被mysql_init初始化過的結(jié)構(gòu)。

server_host既可以是主機(jī)名,也可以是IP地址。如果是連接到本地,可以通過指定localhost來優(yōu)化連接類型。

sql_user_name和sql_password,用戶名和密碼。

port_number和unix_socket_name應(yīng)該分別為0和NULL,除非改變了MySQL安裝的默認(rèn)設(shè)置。

flag參數(shù)用來對一些定義的位模式進(jìn)行OR操作,使得改變使用協(xié)議的某些特性。0。

如果無法連接,它將返回NULL。

關(guān)閉連接

void mysql_close(MYSQL *connection);

設(shè)置選項(xiàng)

int mysql_options(MYSQL *connection ,enum option_to_set,const char *argument);

一次只能設(shè)置一個選項(xiàng),所以每設(shè)置一個選項(xiàng)就得調(diào)用它一次。

成功返回0。

僅能在mysql_init和mysql_real_connect之間調(diào)用。

并不是所有的選項(xiàng)都是char類型,因此它們必須被轉(zhuǎn)換為const char *。

enum選項(xiàng)

實(shí)際參數(shù)類型

說明

MySQL_OPT_CONNECT_TIMEOUT

const unsigned int *

連接超時之前的等待秒數(shù)

MySQL_OPT_COMPRESS

None,使用NULL

網(wǎng)絡(luò)連接中使用壓縮機(jī)制

MySQL_OPT_COMMAND

const char *

每次連接建立后發(fā)送的命令

設(shè)置連接超時時間為7秒 unsigned int timeout = 7;

...

connection = mysql_init(NULL);

mysql_options(connection,MYSQL_OPT_CONNECT_TIMEOUT,(const char *)&timeout);

connection = mysql_real_connect(connection...

錯誤處理

unsigned int mysql_errno(MYSQL *connection);

char *mysql_error(MYSQL *connection);

mysql_errno的返回值實(shí)際上是錯誤碼。

mysql_error的返回值是文本錯誤信息。

執(zhí)行SQL語句

int mysql_query(MYSQL *connection,const char *query);

接受連接結(jié)構(gòu)指針二號文本字符串形式的有效SQL語句(沒有結(jié)束的分號)。

受影響的行數(shù)(UPDATE,INSERT或DELETE)

my_ulonglong mysql_affected_rows(MYSQL *connection);

返回受之前執(zhí)行的UPDATE,INSERT或DELETE查詢影響的行數(shù)。

返回數(shù)據(jù)的語句(SELECT)

一次提取所有數(shù)據(jù)

MYSQL_RES *mysql_store_result(MYSQL *connection);

在mysql_store_result調(diào)用成功之后,調(diào)用mysql_num_rows來得到返回記錄的數(shù)目。

my_ulonglong mysql_num_rows(MYSQL_RES *result);

從使用mysql_store_result得到的結(jié)果結(jié)構(gòu)中提取一行,并把它放到一個行結(jié)構(gòu)中。

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);

這個函數(shù)用來在結(jié)果集中進(jìn)行跳轉(zhuǎn),設(shè)置將會被下一個mysql_fetch_row操作返回的行。參數(shù)offset的值是一個行號,0是第一行。

void mysql_data_seek(MYSQL_RES *result,my_ulonglong offset);

mysql_row_tell返回一個偏移值,用來表示結(jié)果集中的當(dāng)前位置,它不是行號,不能用于mysql_data_seek.

MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result);

完成了對數(shù)據(jù)的所有操作后,必須明確的調(diào)用mysql_free_result來讓MySQL庫完成善后處理

void mysql_free_result(MYSQL_RES *result);

一次提取一行數(shù)據(jù)

MYSQL_RES *mysql_use_result(MYSQL *connection);

處理返回的數(shù)據(jù)

unsigned int mysql_field_count(MYSQL *connection);

它接受連接對象,并返回結(jié)果集中的字段(列)數(shù)目。

簡單的打印數(shù)據(jù)的代碼:

void display_row(){

unsigned int field_count;

field_count = 0;

while(field_count < mysql_field_count(&my_connection)){

printf("%s",sqlrow[field_count]);

field_count++;

}

printf("\n");

}

MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result);

將元數(shù)據(jù)和數(shù)據(jù)提取到一個新的結(jié)構(gòu)中

MySQL_FIELD結(jié)構(gòu)中的成員

說明

char *name;

列名,字符串

char *table;

列所屬的表名

unsigned int flags;

NOT NULL FLAG、PRI KEY FLAG、UNSIGNED FLAG. AUTO_ INCREMENT_FLAC和BINARY_ FLAG

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的c 调用mysql密码为空_C语言连MySQL - osc_srnunz15的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。