MariaDB Connector/Cとlibmysqlclient以外の方法
C言語でMariaDBを使用する
MariaDB Connector/Cは、C言語でMariaDBと通信するための公式ライブラリです。このライブラリを使うと、データベースへの接続、クエリの実行、結果の取得などが簡単にできます。
MariaDB Connector/Cは、公式リポジトリからダウンロードできます。
wget https://downloads.mariadb.org/f/connector-c/mariadb-connector-c-X.Y.Z-src.tar.gz
tar -xvzf mariadb-connector-c-X.Y.Z-src.tar.gz
cd mariadb-connector-c-X.Y.Z
cmake .
make
sudo make install
MariaDB Connector/Cを使ったサンプルコード
#include <mariadb/mysql.h>
int main() {
// データベースへの接続
MYSQL *conn = mysql_init(NULL);
if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) {
fprintf(stderr, "接続エラー: %s\n", mysql_error(conn));
mysql_close(conn);
return 1;
}
// クエリの実行
MYSQL_RES *res = mysql_query(conn, "SELECT * FROM table");
if (res == NULL) {
fprintf(stderr, "クエリ実行エラー: %s\n", mysql_error(conn));
mysql_close(conn);
return 1;
}
// 結果の取得
MYSQL_ROW row;
while ((row = mysql_fetch_row(res)) != NULL) {
// 各列の値を取得
printf("%s\t%s\n", row[0], row[1]);
}
// クエリ結果の解放
mysql_free_result(res);
// データベースとの接続解除
mysql_close(conn);
return 0;
}
libmysqlclientは、MySQL用のクライアントライブラリです。MariaDBにも互換性があるので、C言語でMariaDBを使用する
libmysqlclientは、多くのLinuxディストリビューションでパッケージとして提供されています。
sudo apt install libmysqlclient-dev
libmysqlclientを使ったサンプルコード
#include <mysql/mysql.h>
int main() {
// データベースへの接続
MYSQL *conn = mysql_init(NULL);
if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) {
fprintf(stderr, "接続エラー: %s\n", mysql_error(conn));
mysql_close(conn);
return 1;
}
// クエリの実行
MYSQL_RES *res = mysql_query(conn, "SELECT * FROM table");
if (res == NULL) {
fprintf(stderr, "クエリ実行エラー: %s\n", mysql_error(conn));
mysql_close(conn);
return 1;
}
// 結果の取得
MYSQL_ROW row;
while ((row = mysql_fetch_row(res)) != NULL) {
// 各列の値を取得
printf("%s\t%s\n", row[0], row[1]);
}
// クエリ結果の解放
mysql_free_result(res);
// データベースとの接続解除
mysql_close(conn);
return 0;
}
その他の方法
上記以外にも、C言語でMariaDBを使用する方法はいくつかあります。
C言語でMariaDBを使用するには、いくつかの方法があります。それぞれの方法にはメリットとデメリットがあるので、自分の目的に合った方法を選びましょう。
MariaDB Connector/Cを使ったサンプルコード
#include <mariadb/mysql.h>
int main() {
// データベースへの接続
MYSQL *conn = mysql_init(NULL);
if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) {
fprintf(stderr, "接続エラー: %s\n", mysql_error(conn));
mysql_close(conn);
return 1;
}
// クエリの実行
MYSQL_RES *res = mysql_query(conn, "SELECT * FROM table");
if (res == NULL) {
fprintf(stderr, "クエリ実行エラー: %s\n", mysql_error(conn));
mysql_close(conn);
return 1;
}
// 結果の取得
MYSQL_ROW row;
while ((row = mysql_fetch_row(res)) != NULL) {
// 各列の値を取得
printf("%s\t%s\n", row[0], row[1]);
}
// クエリ結果の解放
mysql_free_result(res);
// データベースとの接続解除
mysql_close(conn);
return 0;
}
libmysqlclientを使ったサンプルコード
#include <mysql/mysql.h>
int main() {
// データベースへの接続
MYSQL *conn = mysql_init(NULL);
if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) {
fprintf(stderr, "接続エラー: %s\n", mysql_error(conn));
mysql_close(conn);
return 1;
}
// クエリの実行
MYSQL_RES *res = mysql_query(conn, "SELECT * FROM table");
if (res == NULL) {
fprintf(stderr, "クエリ実行エラー: %s\n", mysql_error(conn));
mysql_close(conn);
return 1;
}
// 結果の取得
MYSQL_ROW row;
while ((row = mysql_fetch_row(res)) != NULL) {
// 各列の値を取得
printf("%s\t%s\n", row[0], row[1]);
}
// クエリ結果の解放
mysql_free_result(res);
// データベースとの接続解除
mysql_close(conn);
return 0;
}
自作のコード
その他のライブラリ
MariaDB Connector/Cとlibmysqlclient以外にも、C言語でMariaDBを使用するためのライブラリがいくつかあります。
これらのライブラリは、それぞれ機能や特徴が異なるので、自分の目的に合ったものを選びましょう。
MariaDB Connector/Cとlibmysqlclient
- メリット: 比較的簡単に使用できる
- デメリット: 機能が制限されている
自作のコード
- メリット: 自由度が高い
- デメリット: 非常に複雑な作業
その他のライブラリ
- メリット: 様々な機能が利用できる
- デメリット: それぞれ使い方が異なる
c mariadb