LoginSignup
7
8

More than 5 years have passed since last update.

C++からMySQLに簡単に接続するラッパークラス

Posted at

目的

なんらかの理由でC++から接続できたら便利な場合、特定のDBアクセスに対してだけパフォーマンス出したい場合に使う。

ソース
https://github.com/0xfffffff7/MySQLWrapper

依存

libmysqlclient

サンプル

#include    "mysqlwrapper.h" 


// MYSQL TABLE EXAMPLE 
//  CREATE TABLE book 
//    ( 
//    id INT(11) NOT NULL AUTO_INCREMENT, 
//    title VARCHAR(64), 
//    author_name VARCHAR(32), 
//    detail TEXT, 
//    PRIMARY KEY (id) 
//    ); 


int main(int argc, char* argv[]) 
{ 
    const char *server = "localhost"; 
    const char *user = "root"; 
    const char *password = "password"; 
    const char *database = "myapp"; 

    MySqlWrapper sql; 

    sql.init(); 

    // 接続
    if(sql.connect(server, user, password, database) == false){ 
        printf("error %s\n", sql.getError()); 
        return 0; 
    } 

     // クエリを投げる
    if( sql.query("DELETE FROM book;") == false){ 
        printf("error %s\n", sql.getError()); 
        return 0; 
    } 
    sql.clear(); 

     // クエリを投げる
    if( sql.query("INSERT INTO book (title, author_name) VALUES ('book_A', 'auth_A');") == false){ 
        printf("error %s\n", sql.getError()); 
        return 0; 
    } 
    sql.clear(); 
    if( sql.query("INSERT INTO book (title, author_name) VALUES ('book_B', 'auth_B');") == false){ 
        printf("error %s\n", sql.getError()); 
        return 0; 
    } 
    sql.clear(); 

     // クエリを投げる
    if( sql.query("SELECT * FROM book;") == false){ 
        printf("error %s\n", sql.getError()); 
        return 0; 
    } 

    // 結果を取得
    long long nRows = sql.getRowCount(); 


    MYSQL_ROW row; 
    while( (row = sql.getRow()) != NULL ){       
        printf("%s %s %s\n", row[0], row[1], row[2]); 
    } 
    sql.clear(); 

    sql.close(); 

    return 0; 
}
7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8