ホームページ  >  記事  >  データベース  >  C++ で MySQL データベースに接続して使用する方法

C++ で MySQL データベースに接続して使用する方法

醉折花枝作酒筹
醉折花枝作酒筹転載
2021-07-02 09:28:295737ブラウズ

C では、データベースを使用することもできます。今日は、C で MySQL データベースに接続して使用する方法を学びます。必要な友人はそれを参照できます。

C++ で MySQL データベースに接続して使用する方法

1. C MySQL データベースへの接続

まず VS で新しい C プロジェクトを作成し、プロジェクト名を右クリックして [プロパティ] を選択します。

C++ で MySQL データベースに接続して使用する方法

#プラットフォームの選択を選択

C++ で MySQL データベースに接続して使用する方法

構成マネージャーを選択

C++ で MySQL データベースに接続して使用する方法

新規を選択

C++ で MySQL データベースに接続して使用する方法

ドロップダウン メニューから X64 を選択します。OK

C++ で MySQL データベースに接続して使用する方法

C/C を選択します ->一般 - > インクルード ディレクトリをアタッチし、C:\Program Files\MySQL\MySQL Server 5.5\include を追加します (独自のインストール ディレクトリに従って選択)

C++ で MySQL データベースに接続して使用する方法

#コネクタを選択します- > 一般 -> 追加のライブラリ ディレクトリ。 C:\Program Files\MySQL\MySQL Server 5.5\lib; を追加します (独自のインストール ディレクトリに応じて選択します)

C++ で MySQL データベースに接続して使用する方法

コネクタを選択 -> Enter -> 追加の依存関係アイテム。 C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib; を追加します (独自のインストール ディレクトリに従って選択)

C++ で MySQL データベースに接続して使用する方法

最後にダイナミック リンク ライブラリ libmysql を追加します。 .dll をプロジェクトの X64 ビルド ディレクトリにコピーします。ダイナミック リンク ライブラリ ファイルは、C:\Program Files\MySQL\MySQL Server 5.5\lib\ ディレクトリにあります

C++ で MySQL データベースに接続して使用する方法

2. MySQL 共通 API 関数

mysql_affected_rows () 最新の UPDATE、DELETE、または INSERT クエリによって影響を受けた行の数を返します。

mysql_close() サーバー接続を閉じます。

mysql_connect() MySQL サーバーに接続します。この関数は非推奨であるため、代わりに mysql_real_connect() を使用してください。

mysql_change_user() 開いている接続でユーザーとデータベースを変更します。

mysql_create_db() データベースを作成します。この関数は推奨されません。代わりに SQL コマンド CREATE DATABASE を使用してください。

mysql_data_seek() クエリ結果セット内の任意の行を検索します。

mysql_debug() は、指定された文字列を使用して DBUG_PUSH を実行します。

mysql_drop_db() データベースを削除します。この関数は推奨されません。代わりに SQL コマンド DROP DATABASE を使用してください。

mysql_dump_debug_info() サーバーにデバッグ情報をログ ファイルに書き込ませます。

mysql_eof() 結果セットの最後の行が読み取られたかどうかを判断します。この機能は非推奨となっており、代わりに mysql_errno() または mysql_error() を使用できます。

mysql_errno() 最後に呼び出された MySQL 関数のエラー番号を返します。

mysql_error() は、最後に呼び出された MySQL 関数のエラー メッセージを返します。

mysql_escape_string() SQL ステートメントの文字列で使用される特殊文字をエスケープします。

mysql_fetch_field() は、次のテーブル フィールドのタイプを返します。

mysql_fetch_field_direct () フィールド番号を指定して、テーブル フィールドのタイプを返します。

mysql_fetch_fields() は、すべてのフィールド構造の配列を返します。

mysql_fetch_lengths() は、現在の行のすべての列の長さを返します。

mysql_fetch_row() 結果セットから次の行を取得します。

mysql_field_seek() 指定された列に列カーソルを置きます。

mysql_field_count() は、最新のクエリの結果列の数を返します。

mysql_field_tell() 最後の mysql_fetch_field() に使用されたフィールド カーソルの位置を返します。

mysql_free_result() は、結果セットによって使用されているメモリを解放します。

mysql_get_client_info() はクライアントのバージョン情報を返します。

mysql_get_host_info() は、接続を説明する文字列を返します。

mysql_get_proto_info() 接続で使用されるプロトコルのバージョンを返します。

mysql_get_server_info() はサーバーのバージョン番号を返します。

mysql_info() 最後に実行されたクエリに関する情報を返します。

mysql_init() MYSQL 構造を取得または初期化します。

mysql_insert_id() は、AUTO_INCREMENT カラムに対する前のクエリによって生成された ID を返します。

mysql_kill() 指定されたスレッドを強制終了します。

mysql_list_dbs() 単純な正規表現に一致するデータベース名を返します。

mysql_list_fields() 単純な正規表現に一致する列名を返します。

mysql_list_processes() は、現在のサーバー スレッドのテーブルを返します。

mysql_list_tables() 単純な正規表現に一致するテーブル名を返します。

mysql_num_fields() 結果セット内の列の数を返します。

mysql_num_rows() 結果セット内の行数を返します。

mysql_options() mysql_connect() の接続オプションを設定します。

mysql_ping() サーバーへの接続が機能しているかどうかを確認し、必要に応じて再接続します。

mysql_query() NULL で終わる文字列として指定された SQL クエリを実行します。

mysql_real_connect() MySQL サーバーに接続します。

mysql_real_query() count を含む文字列として指定された SQL クエリを実行します。

mysql_reload() はサーバーに認可テーブルをリロードするように指示します。

mysql_row_seek() は、mysql_row_tell() から返された値を使用して、結果セット内の行を検索します。

mysql_row_tell() は行カーソルの位置を返します。

mysql_select_db() データベースに接続します。

mysql_shutdown() データベースサーバーをシャットダウンします。

mysql_stat() サーバーのステータスを文字列として返します。

mysql_store_result() は、完全な結果セットをクライアントに取得します。

mysql_thread_id() は現在のスレッドの ID を返します。

mysql_use_result() 行ごとの結果セットの取得を初期化します。

3. C MySQL データベースを使用します

サンプル プログラムを自分でダイジェストします。含まれている API がわからない場合は、Google で調べてください

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<windows.h>
#include<winsock.h>
#include<mysql.h>


using namespace std;
#pragma comment(lib,"libmysql.lib")
#pragma comment(lib,"wsock32.lib")
MYSQL *mysql = new MYSQL; //mysql连接  
MYSQL_FIELD *fd;    //字段列数组  
char field[32][32];    //存字段名二维数组  
MYSQL_RES *res; //这个结构代表返回行的一个查询结果集  
MYSQL_ROW column; //一个行数据的类型安全(type-safe)的表示,表示数据行的列  
char query[150]; //查询语句  

bool ConnectDatabase();
bool QueryDatabase1();
//bool QueryDatabase2();
int main()
{
    ConnectDatabase();
    QueryDatabase1();
    //QueryDatabase2();
    system("pause");
    return 0;
}


bool ConnectDatabase()
{
    //初始化mysql  
    mysql_init(mysql);
    //返回false则连接失败,返回true则连接成功  
    if (!(mysql_real_connect(mysql, "localhost", "root", "123456", "company", 0, NULL, 0))) //中间分别是主机,用户名,密码,数据库名,端口号(可以写默认0或者3306等),可以先写成参数再传进去  
    {
        printf("Error connecting to database:%s\n", mysql_error(mysql));
        return false;
    }
    else
    {
        printf("Connected...\n");
        return true;
    }
    return true;
}

bool QueryDatabase1()
{
    sprintf_s(query, "select * from t_dept"); //执行查询语句,这里是查询所有,user是表名,不用加引号,用strcpy也可以  
    mysql_query(mysql, "set names gbk"); //设置编码格式(SET NAMES GBK也行),否则cmd下中文乱码  
    //返回0 查询成功,返回1查询失败  
    if (mysql_query(mysql, query))    //执行SQL语句
    {
        printf("Query failed (%s)\n", mysql_error(mysql));
        return false;
    }
    else
    {
        printf("query success\n");
    }
    //获取结果集  
    if (!(res = mysql_store_result(mysql)))   //获得sql语句结束后返回的结果集  
    {
        printf("Couldn't get result from %s\n", mysql_error(mysql));
        return false;
    }

    //打印数据行数  
    printf("number of dataline returned: %d\n", mysql_affected_rows(mysql));

    //获取字段的信息  
    char *str_field[32];  //定义一个字符串数组存储字段信息  
    for (int i = 0; iname;
    }
    for (int i = 0; i<p>関連学習の推奨事項: <a href="https://www.php.cn/course/list/51.html" target="_blank">mysql チュートリアル </a> (ビデオ)</p></mysql.h></winsock.h></windows.h></iostream>

以上がC++ で MySQL データベースに接続して使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。