C言語操作mysql
mysqlをインストールすると、mysqlの下にincludeディレクトリとlibディレクトリが生成され、includeディレクトリにはヘッダファイルが格納され、libにはダイナミックリンクライブラリがあり、include/下のmysqlが格納.h/usr/includeにコピーし、lib/下のlibmysqlclient.soとlibmysqlclient.so.18/usr/lib 64にコピーする、作成プログラムにmysqlを含める必要がある.hヘッダファイル、リンク時-lmysqlclient
ソースコードはconnectです.c、ここではすべてのヘッダファイルを/usr/include/mysqlファイルの下に配置します.原理は簡単です.まずハンドルを初期化し、接続関数を呼び出し、ユーザー名とパスワードを入力します.ここでは「wz」というデータベースと「wz」というテーブルと接続を確立し、次のようにすべてのデータをクエリーします.
実行効果は次のとおりです.
コマンドラインで直接クエリーした結果は次のとおりです.
削除の追加などの操作は似ていますが、apiを呼び出せばいいです.
ソースコードはconnectです.c、ここではすべてのヘッダファイルを/usr/include/mysqlファイルの下に配置します.原理は簡単です.まずハンドルを初期化し、接続関数を呼び出し、ユーザー名とパスワードを入力します.ここでは「wz」というデータベースと「wz」というテーブルと接続を確立し、次のようにすべてのデータをクエリーします.
#include
#include
#include
void main()
{
MYSQL mysql;
MYSQL_RES *res = NULL;
MYSQL_ROW row;
char *query_str = NULL;
int rc, i, fields;
int rows;
/* */
if (NULL == mysql_init(&mysql))
{
printf("mysql_init() : %s
", mysql_error(&mysql));
return;
}
/* */
if (NULL == mysql_real_connect(&mysql, "localhost", "root",
"123456", "wz", 0, NULL, 0))
{
printf("mysql_real_connect() : %s
", mysql_error(&mysql));
return;
}
printf("connect mysql successful
");
/* uft8 */
if (mysql_set_character_set(&mysql, "utf8"))
{
printf("mysql_set_character_set(): %s
", mysql_error(&mysql));
return;
}
/* */
query_str = "select * from wz";
rc = mysql_real_query(&mysql, query_str, strlen(query_str));
if (rc != 0)
{
printf("mysql_real_query() : %s
", mysql_error(&mysql));
return;
}
/* */
res = mysql_store_result(&mysql);
if (NULL == res)
{
printf("mysql_store_result(): %s
", error(&mysql));
return;
}
/* */
rows = mysql_num_rows(res);
printf("The total rows is: %d
", rows);
fields = mysql_num_fields(res);
printf("The total fields is: %d
", fields);
/* */
while ((row = mysql_fetch_row(res)))
{
for (i = 0; i < fields; i++)
{
printf("%s
", row[i]);
}
printf("
");
}
/* */
mysql_close(&mysql);
}
実行効果は次のとおりです.
[root@1dot1dot1dot1 mysql]# ./start.sh
connect mysql successful
The total rows is: 3
The total fields is: 4
1
edward
2018-09-13
9
edward
2018-09-14
12
james
2018-09-14
コマンドラインで直接クエリーした結果は次のとおりです.
mysql> select * from wz;
+----+--------+--------+------------+
| id | title | author | date |
+----+--------+--------+------------+
| 1 | | edward | 2018-09-13 |
| 9 | | edward | 2018-09-14 |
| 12 | | james | 2018-09-14 |
+----+--------+--------+------------+
3 rows in set (0.02 sec)
削除の追加などの操作は似ていますが、apiを呼び出せばいいです.