【Linux】Ubuntu下C语言访问MySQL数据库入门
来源:互联网 发布:微念科技有限公司 知乎 编辑:程序博客网 时间:2024/06/05 13:48
MySQL数据库环境配置
首先需要安装MySQL客户端和服务器,命令行安装方式为:
- sudo apt-get install mysql-server mysql-client
然后,要使用C语言编程访问数据库,需要另外安装一个开发包:
- sudo apt-get install libmysqlclient15-dev
在MySQL中建立相应数据库
首先以用户rick登录MySQL数据库(用户rick已经被root权限用户赋予了创建数据库等等的权限):
然后创建一个名为foo的数据库:
- CREATE DATABASE foo;
- CREATE TABLE children(
- childno int(11) NOT NULL auto_increment,
- fname varchar(30),
- age int(11),
- PRIMARY KEY (childno)
- );
- INSERT INTO children(childno,fname,age) VALUES(1,'Jenny',21);
- INSERT INTO children(childno,fname,age) VALUES(2,'Andrew',17);
- INSERT INTO children(childno,fname,age) VALUES(3,'Gavin',8);
- INSERT INTO children(childno,fname,age) VALUES(4,'Duncan',6);
- INSERT INTO children(childno,fname,age) VALUES(5,'Emma',4);
- INSERT INTO children(childno,fname,age) VALUES(6,'Alex',15);
- INSERT INTO children(childno,fname,age) VALUES(7,'Adrian',9);
在MySQL命令行模式中执行方法如下:
MySQL数据库连接测试
然后采用如下C语言进行数据库连接测试connect1.c:
- #include <stdlib.h>
- #include <stdio.h>
- #include "mysql.h"
- int main(int argc,char *argv[])
- {
- MYSQL *conn_ptr;
- conn_ptr = mysql_init(NULL);
- if(!conn_ptr)
- {
- fprintf(stderr,"mysql_init failed\n");
- return EXIT_FAILURE;
- }
- conn_ptr = mysql_real_connect(conn_ptr,"localhost","rick","rick","foo",0,NULL,0);
- if(conn_ptr)
- printf("Connection success\n");
- else
- printf("Connection failed\n");
- mysql_close(conn_ptr);
- return EXIT_SUCCESS;
- }
注意的是:需要指定include库和库文件的路径名,以及指定链接的库模块mysqlclient。
如果不在开始的时候安装开发包,就会产生如下错误:
执行SQL语句进行数据操作
向数据库表children中插入一行:
- #include <stdlib.h>
- #include <stdio.h>
- #include "mysql.h"
- int main()
- {
- MYSQL my_connecyion;
- int res;
- mysql_init(&my_connecyion);
- if(mysql_real_connect(&my_connecyion,"localhost","rick","rick","foo",0,NULL,0))
- {
- printf("Connection success\n");
- //执行SQL语句
- res = mysql_query(&my_connecyion,"INSERT INTO children(fname,age) VALUES('Ann',3)");
- if(!res)
- printf("Inserted %lu rows\n",(unsigned long)mysql_affected_rows(&my_connecyion));
- else
- fprintf(stderr,"Insert error %d : %s \n",mysql_errno(&my_connecyion),mysql_error(&my_connecyion));
- mysql_close(&my_connecyion);
- }
- else{
- fprintf(stderr,"Connection failed\n");
- if(mysql_errno(&my_connecyion))
- fprintf(stderr,"Connection error %d : %s\n",mysql_errno(&my_connecyion),mysql_error(&my_connecyion));
- }
- return EXIT_SUCCESS;
- }
运行结果:
在这里特别需要注意的是:
函数mysql_affected_rows返回的是被一个更新操作修改的行数,而不是满足where子句的行数。
0 0
- 【Linux】Ubuntu下C语言访问MySQL数据库入门
- 【Linux】Ubuntu下C语言访问MySQL数据库入门
- 【Linux】Ubuntu下C语言访问MySQL数据库入门
- 【Linux】Ubuntu下C语言访问MySQL数据库入门
- 【Linux】Ubuntu下C语言访问MySQL数据库入门
- Ubuntu下用C语言访问MySQL数据库的方法
- Ubuntu下用C语言访问MySQL数据库(转载)
- Ubuntu下用C语言访问MySQL数据库
- Ubuntu下用C语言访问MySQL数据库
- Ubuntu下用C语言访问MySQL数据库
- Ubuntu下用C语言访问MySQL数据库
- Linux下用C语言访问MySQL数据库的程序
- linux下使用c语言访问mySql数据库
- linux ubuntu下C语言与数据库mysql连接
- linux(ubuntu)下C++访问mysql数据库
- linux使用c语言访问mysql数据库
- Linux下C访问Mysql数据库
- linux下mysql数据库C语言编程
- 【redis】redis集群节点选举
- Opencv学习——图像及视频读取
- 栈结构
- 日志持久化插入sql语法错误处理
- 总结下安卓实现购物车功能原理
- 【Linux】Ubuntu下C语言访问MySQL数据库入门
- 二叉树的镜像
- C语言编程练习——查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:
- springMVC 原理
- weka,FP,priori
- 嵌入式系统设计师
- 11大科技趋势
- 新的开始
- hive报错---安装系列六