インストールMySQLの下では、データテーブルが前提に構築されました。
あなたは、単にデータやその他の運用データを達成するために追加したい場合は、参照は別のブログかもしれません。 HTTPS:// www.cnblogs.com/ming-4/p/11544514.html
CPPは、データベース管理とヘッダファイルを定義するファイル。
MySQLManager.hファイル:
/*MySQLManager.hファイル: ファイル名:MySQLManager.hの 内容:MySQLのデータベース接続の管理クラスの 作成日:2016年10月18日 作成者:AceTanは * / の#pragmaは一度// ネットワーク通信ヘッダが する#include <WINSOCK.H > // 導入MySQLのヘッダファイル(グッド・プラクティスは、フォルダのコピープロジェクトディレクトリである、あなたはまた、VCにディレクトリを設定することができます) の#include 「インクルードは/ mysql.h含める」 の#includeを <はWindows.h> //が追加の依存関係を含めますアイテムは、作品であってもよく、 -内部プロパティを設定するの#pragmaコメント(LIB、「WSOCK32.LIBを」) の#pragmaコメント(LIB、「libmysql.libを」)// 必要な情報のいくつかのデータベースに接続するための構造体ConnectionInfo { CONST チャー ホスト*; // ホストアドレス のconst のchar *ユーザー; //は、ユーザー名 のconst char型 *パスワード; // パスワード のconst のchar *データベース; // データベース名 、符号なし整数港; // ポート番号 のconst のchar *のunix_socket; // UNIX接続識別 符号なしロング clientflag; // クライアント接続フラグ // コンストラクタ、いくつかのデフォルト値を設定 ConnectionInfoを(): ホスト(「127.0.0.1 」)、 ポート(3306 )、 unix_socketは、(NULL)であり、 clientflag(0 ) { } }; クラスmysqlmanager { パブリック: // データベースに接続 BOOL初期(ConnectionInfo&インフォメーション); // 解除可能な接続 BOOL FreeConnect(); // データを増加 // BOOL InsertData(定数するchar * SQL); //は、データ削除 // BOOL DeleteData(のconst char型*のSQLを); // 更新データ // BOOLにupdateData(のconst char型* SQLの場合); // SQL文を実行し、削除、追加を含め、更新データ BOOLExecuteSQL(のconst char型 *のSQL); // クエリデータ A MYSQL_RES QueryDataが(*でのconst のchar *のSQL); //は、結果セット印刷し 、ボイド(PrintQueryResを); プライベート: MYSQLベースのm_mysql; // MySQLのコネクタ A MYSQL_RES * m_res; // クエリの結果セット }。
MySQLManager.cppファイル:
#include <iostreamの> する#include <stdio.hの> 使用して 名前空間STD; // 接続されたデータベースの BOOLの mysqlmanager ::初期(ConnectionInfo&情報) { //はMySQLを初期化し、接続のMySQLデータベース にmysql_init(&m_mysql); // 接続に失敗 する場合((にmysql_real_connect(&!m_mysql、info.host、info.user、info.password、info.database、info.port、info.unix_socket、info.clientflag))) { 返す falseに; } リターン をtrueに; } // リリース接続 BOOLのmysqlmanager :: FreeConnect() { //リリースリソースを mysql_free_result(m_res); にmysql_close( &m_mysql); を返す 偽; } // SQL文を実行し、更新データ、追加、削除などの BOOLの mysqlmanager ::は、ExecuteSQL(のconst char型 *のSQL) { IF(するmysql_query(&m_mysql、SQL )) { // プレイ・エラー・ログ、ここでは直接コンソールに CERR << 「SQLステートメントが失敗し、実行、エラーメッセージは次のとおりです。」 << mysql_error(&m_mysql)<< てendl; 返す 偽; } 他 { 裁判所未満 << " 実行SQLステートメントの成功!「 << てendl; } リターン をtrueに; } // クエリデータ MYSQL_RES * mysqlmanager :: QueryData(のconst char型 *のSQL) { IF(するmysql_query(&m_mysql、SQL)) { // コンソールに直接ここに示されているプレイ・エラー・ログ、 << CERR " クエリが失敗し、エラーメッセージは次のとおりです。" << mysql_error(&m_mysql)<< ENDL; 戻りnullptr; } 他 { 裁判所未満は << " クエリが正常に実行します!「 << てendl; ストアクエリ結果 m_resはmysql_store_result =(&m_mysql)を、 返すm_resを; } // 結果セットを横断 空隙mysqlmanagerを:: PrintQueryRes() { IF(nullptr A m_res == == NULL || m_res) { リターン; } // 行の数を取得します // unsigned int型=にmysql_affected_rows行(m_mysql); // フィールド列配列 MYSQL_FIELD * =フィールドnullptr;は // フィールド名の2次元アレイを保存 チャーフィールド名が[ 64 ] [ 32 ]; // フィールド名を取得 するために(INT I =0 ; =フィールドのmysql_fetch_field(m_res); ++ I) { strcpy_s(フィールド名[I]、フィールド - > 名); } // 列の数を取得 int型カラム= mysql_num_fields(m_resを) するための(int型 I = 0 ;私は<カラム; ++ I) { // C言語を使用してフォーマットのprintf、もう少し便利 のprintf(" %の10SがTを\ " 、フィールド名[I]); } COUT << ENDL; MYSQL_ROW行; 一方(行= は、mysql_fetch_row(m_res )) { 用(int型私= 0 ; 私は列を<; ++ I) { のprintf(" %の10S \ T " 、行[I])。 } COUT << ENDL。 } }
主な機能:
#include <入出力ストリーム> の#include " MySQLManager.h " 使用 名前空間STD; int型のmain() { mysqlmanagerのMySQL、 ConnectionInfo情報; // この構造体、読み取られる構成ファイルから一般プロジェクトConnectionInfoを充填 info.user = " ルートを" ; info.password = " your_passwordに" ; info.host = " ローカルホスト" ; info.port = 3306 ; info.database = " テスト" 。 info.unix_socket = NULL; info.clientflag = 0 ; // MySQLの接続 IF(!mysql.Init(情報)) { リターン - 1。; } // 増加テストデータ のconst のchar * SQL1 = " NULL(ユーザー値。INSERT INTO、 'エイダ'、 'パスワード')" ; mysql.ExecuteSql(SQL1); // 削除するテストデータ のconst のchar * SQL2 = " ユーザー名= 'AceTan'から削除" ; mysql.ExecuteSql(SQL2); // 変更データテスト のconst char * SQL3 = " WHERE名= 'エイダ' 'update_password'更新ユーザーパスワード= SET " ; mysql.ExecuteSql(SQL3); // クエリのテストデータ のconst のchar * sql4 = " ユーザーからのSELECT * " ; mysql.QueryData(sql4 ); mysql.PrintQueryRes(); // 解放資源のMySQL mysql.FreeConnect(); 戻り 0 ; }