linux下用c语言实现与mysql的连接!!

usr_src 2009-07-19 12:42:13
在做学生信息管理系统~~!麻烦高手指点如何用c语言连接mysql数据库~~!!多谢!!~~
...全文
150 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
nlylidb 2009-07-19
  • 打赏
  • 举报
回复

const char* MysqlHost = "localhost";
const char* MysqlUser = "root";
const char* MysqlPass = "";
const char* MysqlDB = "mysql";
const char* MysqlTable = "user";
//初始化mysql结构
MYSQL* mysql = mysql_init(NULL);
if (mysql == NULL)
{
fprintf(stderr,"init mysql failed!");
return -1;
}
//连接mysql数据库
mysql = mysql_real_connect(mysql, MysqlHost, MysqlUser, MysqlPass, MysqlDB, 0, NULL, 0);
if (mysql == NULL)
{
fprintf(stderr,"connect to mysql server failed!");
return -1;
}
//存放sql语句
char sql[4096];
sprintf(sql, "select * from %s")", MysqlTable);
//执行mysql语句
int r = mysql_query(mysql, sql);
if (r != 0)
{
fprintf(stderr,"sql query failed!%s", mysql_error(mysql));
}
//后面用fetch_row等函数得到结果,具体的去查手册。


头文件需要mysql.h,可能是#include <mysql/mysql.h>
编译时需要连接mysqlclient库,使用-lmysqlclient
usr_src 2009-07-19
  • 打赏
  • 举报
回复
我擦!!!我发现思路基本上是一样的~~!被你说中了~~!!只是很小的差别~~!影响不大!!~~还是你牛逼~~!!
usr_src 2009-07-19
  • 打赏
  • 举报
回复
那我得抓紧了~~!擦!!
lxb316 2009-07-19
  • 打赏
  • 举报
回复
好,呆会把你试成功的方法都列出来,大家学习学习~~
superbtl 2009-07-19
  • 打赏
  • 举报
回复
数据库看错了 mysql啊 不好意思
usr_src 2009-07-19
  • 打赏
  • 举报
回复
不错不错!!你得那个方法我试验成功了~~!!至于其他方法,我还得去钻研一番~~!看看到底可以成功哪几种~~!!
lxb316 2009-07-19
  • 打赏
  • 举报
回复
刚看了一下Pro*C编程,只是数据库变了,库函数也变了,思想差不多。我没装Oracle数据库~~
lxb316 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 usr_src 的回复:]
回复6楼:只有这个方法了吗??网上似乎有好多种办法啊~~!!
[/Quote]
是的,方法很多,但基本都是这个思想,可能写法上有细微的差别,或者他们用的不是MySQL!
建议看一下C API!
drinker_linux 2009-07-19
  • 打赏
  • 举报
回复
顶,学习学习
lxb316 2009-07-19
  • 打赏
  • 举报
回复
8楼高手,他写个学生管理系统,用的是MySQL,没必要搞那么复杂,看几个常用的C API函数就行了!
usr_src 2009-07-19
  • 打赏
  • 举报
回复
回复6楼:只有这个方法了吗??网上似乎有好多种办法啊~~!!
nlylidb 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 superbtl 的回复:]
引用 5 楼 usr_src 的回复:
引用 3 楼 superbtl 的回复:
pro*c 或者 oci

???????????完全不懂??不了解!!
算是个编程语言了 pro*c跟OCI去GOOGLE搜下吧
不行就system("sqlplus") 这个不知道行不? 行也是馊主意
[/Quote]

话说虽然甲骨文买了sun,但是mysql还没搞进oracle吧……
superbtl 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 usr_src 的回复:]
引用 3 楼 superbtl 的回复:
pro*c 或者 oci

???????????完全不懂??不了解!!
[/Quote] 算是个编程语言了 pro*c跟OCI去GOOGLE搜下吧
不行就system("sqlplus") 这个不知道行不? 行也是馊主意
lxb316 2009-07-19
  • 打赏
  • 举报
回复
上面有三个头文件需要包含,在Linux下你可以找到这些头文件,包含就行了~~
lxb316 2009-07-19
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"/usr/include/mysql/mysql.h" /*此处对应相应文件的具体位置,根据具体情况而定,下两行同此*/
#include "/usr/include/mysql/mysql_version.h"
#include "/usr/include/mysql/errmsg.h"
MYSQL*stumysql;
int main()
{
stumysql=mysql_init(NULL); /*实现数据库连接*/
if(mysql_real_connect(stumysql,"localhost","root","123456","student",0,NULL,0))
{
printf("Connect Successfully!数据库连接成功!\n");
}
else
{
printf("Connect Failed!数据库连接失败!\n");
}
mysql_close(stumysql); /*关闭数据库*/
}
//////////////////////////////////////////////////////////////////////////////////////
将上面的文件保存为mysqlconnect.c
执行编译命令:gcc -o mysqlconnect mysqlconnect.c -L/usr/lib/mysql/ -lmysqlclient -lz
然后运行(./mysqlconnect)即可。
至于什么插入、删除、查询就是sql语句的问题了
这里有例子:http://blog.csdn.net/lxb316/archive/2009/07/18/4358902.aspx
usr_src 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 superbtl 的回复:]
pro*c 或者 oci
[/Quote]
???????????完全不懂??不了解!!
usr_src 2009-07-19
  • 打赏
  • 举报
回复
麻烦一楼的说的再详细些~~!!编译是怎么操作的???头文件该如何取??多谢~~!!
superbtl 2009-07-19
  • 打赏
  • 举报
回复
pro*c 或者 oci
pridesnow 2009-07-19
  • 打赏
  • 举报
回复
学习ing
内容: 1、mysql——原始 文件: 博客网址:https://blog.csdn.net/weixin_42167759/article/details/80848259 存在的问题: 1、新增用户时候id ,删除后再增加会出错,id有冲突; 2、删除用户时候,若该用户创建过其他用户(不能改此用户名、不能改此用户角色,不能删除此用户); 3、(下一步加入)增加时候,若改用户名存在(给出用户存在的提示信息); 2、db_修改过(用户 角色 权限) 文件: 博客网址:https://blog.csdn.net/weixin_42167759/article/details/80848780 修改的问题: 1、新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错; 2、删除用户时候,若该用户创建过其他用户(不能改此用户名、不能改此用户角色,不能删除此用户); 3、(下一步加入)增加时候,若改用户名存在(给出用户存在的提示信息); 4、修改了用户的表字段信息,新增了认证方式的字段; 5、用户有三种认证方式,当选择口令认证的时候,syn_sn_有输入信息,当选择KEY认证的时候,dyn_pass_sn_字段有输入信息 3、userGroupUser_intfac 文件: 博客的网址:https://blog.csdn.net/weixin_42167759/article/details/80848991 整理的文档: 《Mysql 最后程序的总结—— Linux系统C语言编程连接MySql数据库实现的用户角色权限管理系统》 修改的问题: 1、新增 添加用户组模块; 2、新增 显示用户组模块; 3、修改 新增用户模块 选择 其所属用户组 并把用户id与用户组id 写入用户用户组关系表; 4、新增 修改用户以及删除用户组模块(有用户属于该用户组 用户组名字不允许更改 用户组不允许删除); 5、新增 增加用户、用户组时候,若要增加的用户名已存在(给出用户存在的提示信息); 6、修改了 显示的界面问题; 7、修改部分switch case 输入为字符; 8、修改部分 操作完成后 有两次回车 确认的问题; 遗留的问题: 1、switch case 输入为字符,应该改为case a:bresk; case b:break;…… 否则输入的1与10是一样的执行结果; 字符中只有数字0-9; 2、在remark字段中 scanf()函数是不允许输入空格的。 __________________________________________________________________________________________________ 4、user-role-authoritys-usergroup文件: 数据库的图。

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧