LINUX下C语言连接mysql

插入操作:

 #include <stdio.h>
 #include <mysql.h>
 int main(int argc,char *argv[])
 {
	 MYSQL conn;
	 int res;   
	 mysql_init(&conn);//初始化 连接
	 if(mysql_real_connect(&conn,"localhost","root","123","test",0,NULL,CLIENT_FOUND_ROWS))
	 {
		printf("数据库连接成功/n");
		res = mysql_query(&conn,"insert into test values('user','123456')");//插入语句,成功返回0,失败返回1
		if(res)
		{
			printf("语句执行失败/n");
			mysql_close(&conn);//记得关闭连接
		}
		else
		{
			printf("语句执行成功/n");
			mysql_close(&conn);
		}
	 }       
	 return 0;
 }


查询操作:

void query_sql(char* sql) 
{
    MYSQL my_connection; /*这是一个数据库连接*/
    int res; /*执行sql語句后的返回标志*/
    MYSQL_RES *res_ptr; /*指向查询结果的指针*/
    MYSQL_FIELD *field; /*字段结构指针*/
    MYSQL_ROW result_row; /*按行返回的查询信息*/

    int row, column; /*查询返回的行数和列数*/
    int i, j; /*只是控制循环的两个变量*/

    /*初始化mysql连接my_connection*/
    mysql_init(&my_connection);

    /*这里就是用了mysql.h里的一个函数,用我们之前定义的那些宏建立mysql连接,并
    返回一个值,返回不为空证明连接是成功的*/
    if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD,
               DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) 
	{
		/*连接成功*/
        printf("数据库查询query_sql连接成功!n");
        /*这句话是设置查询编码为utf8,这样支持中文*/
        mysql_query(&my_connection, "set names utf8");
		
        /*下面这句话就是用mysql_query函数来执行我们刚刚传入的sql語句,
        这会返回一个int值,如果为0,证明語句执行成功*/
        res = mysql_query(&my_connection, sql);

        if (res) 
		{ /*现在就代表执行失败了*/
            printf("Error: mysql_query !n");
            /*不要忘了关闭连接*/
            mysql_close(&my_connection);
        }
		else 
		{ 
			/*现在就代表执行成功了*/
            /*将查询的結果给res_ptr*/
            res_ptr = mysql_store_result(&my_connection);

            /*如果结果不为空,就把结果print*/
            if (res_ptr) 
			{
                /*取得結果的行数和*/
                column = mysql_num_fields(res_ptr);
                row = mysql_num_rows(res_ptr) + 1;
                printf("查询到 %lu 行 n", row);

                /*输出結果的字段名*/
                for (i = 0; field = mysql_fetch_field(res_ptr); i++)
                    printf("%st", field->name);
                printf("n");

                /*按行输出結果*/
                for (i = 1; i < row; i++)
				{
                    result_row = mysql_fetch_row(res_ptr);
                    for (j = 0; j < column; j++)
                        printf("%st", result_row[j]);
                    printf("n");
                }

            }

            /*不要忘了关闭连接*/
            mysql_close(&my_connection);
        }
    }
}

编译:gcc -o test_mysql test_mysql.c `mysql_config --cflags --libs`

插入 删除 更新操作返回一个整形数值,以判断成功与否。查询返回的更复杂。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值