linux_下_C_语言_连接_MySQL数据库_(详细注释)

时间:2021-01-19 11:28:55

Linux下C语言和Mysql数据库

#include <stdlib.h>
#include <stdio.h>
#include <mysql/mysql.h> // 要把MySQL头文件設置好

int main(int argc, char *argv[]) {
int t, r;
char *query;
MYSQL *conn_ptr;
MYSQL_RES *res;
MYSQL_ROW row;

// 初始化一个类型为MYSQL的数据结构
conn_ptr = mysql_init(NULL);

if (!conn_ptr) {
fprintf(stderr, "mysql_init failed\n");
return EXIT_FAILURE;
}

// 与MySQL数据库引擎建立连接。
conn_ptr = mysql_real_connect(conn_ptr, "localhost", "root", "root",
"test", 0, NULL, 0);

if (conn_ptr) {
printf("Connection success\n");
}
else {
printf("Connection failed\n");
}

//query = "delete from stu where name = 'c'";

//t=mysql_real_query(conn_ptr,query, (unsigned int)strlen(query) );

query = "select * from stu";

// 执行query字符串中的SQL语句
t = mysql_real_query(conn_ptr, query, (unsigned int)strlen(query) );

if (t)
{
printf("Error making query: %s\n", mysql_error(conn_ptr));
}
else
{
printf("Query made...\n");
}

// 获取语句执行的返回结果。
res=mysql_use_result(conn_ptr);

for(r = 0; r <= mysql_field_count(conn_ptr); r++)
{
// 取回结果集中的下一条记录 。
row = mysql_fetch_row(res);

if(row < 0)
break;

// 获得一条记录中的各个字段
for(t = 0; t < mysql_num_fields(res); t++)
{
printf("%s ",row[t]);
}

printf("\n");
}

mysql_close(conn_ptr);

return 0;
}

// 用以下命令使用 GCC 编译 这个 C源文件.(linux系统要安装GCC和 MySQL嵌入式开发包)
// gcc -o C_MySQL_o -g C_MySQL.c -lmysqlclient