1. mysql API のヘッダー ファイルをインクルードする必要があります
ローカルの mysql データベースに接続する必要がある場合は、mysql がデータベースはローカルにインストールされている必要があります。ここでは、データベースへの接続、クエリ ステートメントの実行、その他の操作など、一部の mysql API が使用されています。これらのインターフェイスは、次のヘッダー ファイルに含まれています:
#include <mysql/mysql.h>
2. mysql に接続するための具体的な手順
ここでは、大きく 4 つの主要なステップに分けることができます:
1. mysql データベースに接続します
1. mysql データベースに接続します
明らかに、 mysql データ内のデータを取得するには、まずデータベースに接続し、データベースを操作できるハンドルを取得する必要があります。
2. クエリ ステートメントを実行します。つまり、必要なデータを選択します。
は、クエリ ステートメントを実行し、必要なデータをクエリします。クエリされたデータは結果セットと呼ばれる場所に保存されます。
3. 結果セットから必要なデータを取得する
関連するインターフェイス関数を使用して、結果セットから各行とローカル フィールドのデータを取得します。
4. 結果セットから各行の各フィールドの情報を抽出
5. 結果セットmysqlハンドルを含むリソースを解放
以下で詳しく説明します使用する必要のあるいくつかの主要なインターフェイス機能。
2.1 mysql_real_connect
この関数は、ホスト上で実行されているデータベース エンジンに接続するために使用されます。接続に成功するとデータベースを操作できるハンドルが取得され、失敗した場合は NULL ポインタが取得されます。返されます。
MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag )
この関数には多くのパラメータがあり、各パラメータの意味は次のとおりです:
mysql: 既存のMYSQL 構造。 mysql_real_connect() を呼び出す前に、mysql_init() を呼び出して MYSQL 構造を初期化する必要があります。
#host: ホスト名または IP アドレスです。 「host」が NULL または文字列「localhost」の場合、接続は localhost への接続として扱われます。
#user: ユーザーの MySQL ログイン ID。 「user」が NULL または空の文字列「" の場合、そのユーザーは現在のユーザーとみなされます。
passwd: ユーザーのパスワード。 「passwd」が NULL の場合、ユーザーのユーザー テーブル内のエントリ (パスワード フィールドが空のもの) のみが一致するかどうかチェックされます。
db: データベース名です。 db が NULL の場合、接続によりデフォルトのデータベースがこの値に設定されます。
port: 「port」が 0 でない場合、その値が TCP/IP 接続のポート番号として使用されます。 「ホスト」パラメータによって接続のタイプが決定されることに注意してください。
unix_socket: unix_socket が NULL でない場合、この文字列は使用するソケットまたは名前付きパイプを記述します。 「ホスト」パラメータによって接続のタイプが決定されることに注意してください。
client_flag: 値は通常 0
2.2 mysql_query または mysql_real_query
この関数はused クエリ コマンドをデータベースに送信し、データベースに実行させます。 0 を返すとクエリが成功したことを示し、それ以外の場合は失敗します。
int mysql_query(MYSQL *mysql, const char *stmt_str)
Or:
int mysql_real_query(MYSQL *mysql, const char *stmt_str, unsigned long length)
mysql: を通じて取得された mysql 操作ハンドルです。
stmt_str: 実行する必要があるクエリ ステートメントを示します。
#length: クエリ ステートメントの長さです。
上記 2 つの関数の違いは次のとおりです。
mysql_query() はバイナリ ステートメント、つまりパラメータ stmt_str の実行には使用できません。できません 文字に解析されるバイナリ データがあります。
mysql_query クエリ速度は、クエリ ステートメントの長さを計算する必要があるため、若干遅くなります。
2.3 結果セット mysql_store_result
を取得します。関数は、クエリが成功した場合は結果セットを返します。失敗した場合は、NULL を返します。
MYSQL_RES *mysql_store_result(MYSQL *mysql)
2.4 結果セット内のデータの各行を表示します。
次の入力パラメータこの関数は、ステップ (3) で返された結果セットです。呼び出されるたびに、結果セットの次のデータ行が返され、ポインタは 1 行後方に移動します。次のデータ行がない場合は、NULL が返されます。
mysql_num_fields(result) を使用して結果セット内の行数を計算し、mysql_num_fields(result) を使用して列数を計算できます。 rowが、ある行の情報であれば、row[0]、row[1]となります。 。 。行の各フィールド情報。
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
3. プログラミングの例
ここでの環境は Linux システムです。使用されるローカル データベース名は CrashCourse、クエリ テーブル名は products です。次のプログラミング例は、products テーブル内の価格が 30 を超えるすべてのアイテムをクエリする方法を示しています。 products テーブルの完全な内容は次のとおりです:
#include#include <mysql/mysql.h> #include using namespace std; MYSQL mysql; //mysql连接 MYSQL_RES* res; //结果集结构体 MYSQL_ROW row; //char** 二维数组,存放记录 int main() { // 步骤1: 初始化并连接数据库,获得操作数据库的句柄 mysql_init(&mysql); //初始化 if (!(mysql_real_connect(&mysql, "localhost", "root", "root", "CrashCourse", 0, NULL, 0))) { cout << "Couldn't connect to Database!\n : " << mysql_error(&mysql); exit(1); } else { printf("Database connection succeeded. Connected...\n\n"); } // 步骤2: 执行查询语句,查询需要的数据(设置编码格式也相当于执行特殊的查询语句) mysql_query(&mysql, "set names gbk"); // 设置编码格式 mysql_query(&mysql, "SELECT * from products where prod_price > 30"); // 步骤3:获取结果集 res = mysql_store_result(&mysql); // 步骤4:显示结果集中每行数据 int cols = mysql_num_fields(res); // 计算结果集中,列的个数 while (row = mysql_fetch_row(res)) { for (int i = 0; i < cols; ++i) { cout << row[i] << "\t"; } cout << endl; } // 步骤5:释放结果集合mysql句柄 mysql_free_result(res); mysql_close(&mysql); return 0; }
クエリの結果は次のとおりです:
以上がC++ で mysql データベースに接続してデータを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ホットトピック



