linux下使用c 操作mysql

2021-08-21 15:30:03 字數 3457 閱讀 2323

關於mysql的基礎知識可以參考 mysql基礎

首先,需要確保已安裝mysql-server,mysql-client,mysql-devel。

1. mysql

用於定義乙個mysql物件,便於後續操作確定要操作的資料庫是哪乙個。

mysql mysql;  //mysql標記對應某個資料庫
2. mysql_row

用於定義乙個行物件,其內容含有一行的資料。

mysql_row row;  //row[i]可用於輸出該行第i個字段的資料
用於定義乙個儲存字段資訊的物件。

mysql_field *field;  //field->name儲存對應欄位名稱
用於定義乙個儲存資料庫檢索資訊結果的物件。

mysql_res *result;
其實在操作mysql資料庫時,最常使用的函式有以下幾個:

1. mysql_init()

用於初始化乙個mysql物件,來連線mysql服務端。

mysql *mysql_init( mysql *mysql );

//example

mysql mysql;

mysql_init( &mysql );

2. mysql_real_connect()

用於連線資料庫

mysql *mysql_real_connect (

mysql *mysql, //初始化的mysql物件,與mysql_init()對應

const

char *host, //主機位址

const

char *user, //使用者,例如:root

const

char *passwd, //資料庫的密碼

const

char *db, //要連線的資料庫,例如:student

unsigned

int port, //埠,可填0

const

char *unix_socket, //一般為null

unsigned

long client_flag); //一般為0

//example

mysql_real_connect( &mysql, "localhost", "root",

"mypasswd", "student", 0, null, 0 );

3. mysql_query()

用於執行mysql命令。其引數應使用c風格字串。

mysql_query( mysql *mysql, char * command );

//example

string

command = "select * from info";

mysql_query( &mysql, command.c_str() );

4. mysql_store_result()

用於獲取mysql操作的檢索結果。

mysql_res *mysql_store_result(mysql *mysql);

//example

mysql_res *result;

result = mysql_store_result( &mysql );

5. mysql_num_rows()

用於獲取結果集的行數。

mysql_num_rows( mysql_res *result );
6. mysql_num_fields()

用於獲取結果集的字段數。

mysql_num_fields( mysql_res *result );

//example

int row_num;

row_num = mysql_num_fields( result );

7. mysql_fetch_field()

用於獲取下乙個欄位的型別。

mysql_field* mysql_fetch_field(mysql_res *result);
8. mysql_fetch_row()

從結果集中獲取下一行,結束返回null。

mysql_row mysql_fetch_row(mysql_res *result); 

//example

mysql_row row;

while( row = mysql_fetch_row( result ), row != null )

cout

<< endl;

}

9. mysql_fetch_field_direct()

給定字段序號,返回字段型別,結束返回null。

mysql_field* mysql_fetch_field_direct(mysql_res *result, int i); 

//example

int num = mysql_num_fields( result ); //返回字段個數

for( int i = 0; i < num; i++ )

cout

<< endl;

10. mysql_close()

用於關閉連線。

mysql_close( mysql *mysql );
#include 

#include

#include

using

namespace

std;

class mysqldb

}~mysqldb()

void connect( string host, string user, string passwd, string database )

}void add();

void print();

};void mysqldb::add() while( id == "y" );

}void mysqldb::print()

int num;

num = mysql_num_fields( result ); //返回字段個數

for( int i = 0; i < num; i++ )

cout

<< endl;

while( row = mysql_fetch_row( result ), row )

cout

<< endl;

}}int main()

參考:

Linux下利用Docker搭建MYSQL5 7

1 建立mysql配置目錄 建立配置目錄 mkdir p etc mysql conf.d 建立資料和日誌目錄 mkdir pv opt mysql 2 修改my.cnf配置 輸入 sudo vim etc mysql conf.d my.cnf,新增如下內容 mysqld default stor...

linux下用cmake編譯安裝mysql

編譯 linux下用cmake編譯安裝mysql 5.6.35 安裝cmake sudo pacman s cmake wget tar zxvf mysql 5.6.35.tar.gz cd mysql 5.6.35 建立資料存放目錄 mkdir p vhs mysql mysql56 建立使用者...

linux環境下安裝mysq5 7

mysql安裝目前有三種方式 bin包 原始碼 rpm包。2 安裝依賴庫 shell yum search libaio shell yum install libaio y 3 建立資料庫專用賬號 useradd r s sbin nologin mysql4 清空系統中原有配置檔案 mariad...