Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux培训 > » 正文

linux下C语言连接mysql

来源: Ueaner 分享至:

环境:fedora16

1)安装:# yum install mysql mysql-devel //mysql-devel同样需要安装,开发中要用到/usr/include/mysql

查看mysql是否启动: service mysqld status ,如果未启动,启动mysql:service mysqld start

2)创建数据表

进入mysql:mysql -u root -p 回车,初始密码未空,再次回车

use test

以下为导出数据:创建数据表,插入数据应该可以自己解决吧

--
-- Database: `test`
--

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`id`, `name`) VALUES
(1, 'tom'),
(2, 'jack'),
(3, 'haha');

3)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <mysql.h>
int main(int argc, char* argv[]) {
	MYSQL mysql;
	//连接mysql
	if (connect_mysql(&mysql)) {
		return 1;
	}
	//载入数据
	if (load_users(&mysql)) {
		mysql_close(&mysql);
		return 1;
	}
	//Do something here.
	//关闭mysql
	mysql_close(&mysql);
	return 0;
}
//连接MYSQL数据库
int connect_mysql(MYSQL* mysql) {
	printf("Initializing mysql.................");
	if (!mysql_init(mysql)) {
		return 1;
	}
	printf("Done\r\n");
	printf("Connectiong to mysql...............");
	if (!mysql_real_connect(mysql, "localhost", "root", "", "test", 0, NULL,0)) {
		fprintf(stderr, "Error: %s\r\n", mysql_error(mysql));
		return 1;
	}
	//设置mysql连接的字符集
	mysql_query(mysql, "SET NAMES 'utf8'");
	printf("Done\r\n");
	return 0;
}
//加载数据表
int load_users(MYSQL *mysql) {
	int ret, field_count, row_count, i;
	int *lengths;
	char *query = "select * from users";
	MYSQL_RES *result;
	MYSQL_ROW row;
	ret = mysql_real_query(mysql, query, strlen(query));
	if (ret != 0) {
		printf("加载不了users的数据。\n");
		return 1;
	}
	result = mysql_store_result(mysql);
	row_count = (int) mysql_num_rows(result);
	field_count = (int) mysql_num_fields(result);
	if (result == NULL && field_count == 0) {
		printf("无数据");
		return 1;
	}
	for (i = 0; i < row_count; i++) {
		row = mysql_fetch_row(result);
		printf("%s  %s\n", row[0], row[1]);
	}
	mysql_free_result(result);
	return 0;
}

4)编译:gcc -o bin_name hello.c -I /usr/include/mysql -L /usr/lib/mysql -lmysqlclient -lz -lm

5)执行:(ls一下你发现目录下多了一个bin_name)

./bin_name

linux c mysql

祝你成功!~

参考:http://c.chinaitlab.com/database/850508_2.html

  • 大小: 91.4 KB
  • 查看图片附件

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史