鱼C论坛

 找回密码
 立即注册
查看: 846|回复: 1

MySQL与Dev C++连接

[复制链接]
发表于 2023-5-10 14:47:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
按给出步骤如下:
#include<stdio.h>//流函数库
#include<stdlib.h>//标准库
#include<string.h>//字符串库
#include<winsock2.h>//连接模式库
#pragma comment(lib,"libmysql");//驱动环境
#include<mysql.h>//数据库操作函数环境
#define HOST "localhost"//数据库服务名
#define USERNAME "root"//用户名
#define PASSWORD "633721"//密码
#define DATABASE "cjgl"//连接目标数据库
(问题1:这些是否在下列设置完成后再在Dev C++软件上输入编译并运行?)

1.工具→编译器选项→显示,把<ID 27071 branslation missing>前的勾去掉  
(问题2:我的版本是5.11没有这个选项,该如何设置?)
2.工具→编译选项→勾选第一个框框,并输入 -fexec-charset=gbk
                      第二个框中,在后面增加 -lmysql,即改为-static-libgcc -lmysql   
(问题3:我的编译器配置为:TDM-GCC 4.9.2 64-bit Release,跟网络教程选的TDM-GCC 4.9.2 64-bit Debug不一样,有影响吗?)
3.工具-编译选项-代码生成/优化-连接器-产生调试信息(改成yes);然后,工具-环境变量-浏览debug变量一栏打钩;(已设置)
4.工具,编译选项,目录,库/包含文件,把MySQL安装目录下的lib、include目录添加(已设置)

远程访问设置:
(问题4:这个是在哪里输入这些代码?服务器和远程客户是在哪里?)
1.在服务器上运行:mysql -u root -P 3306 -p
                  use user;
                  Update user set host=’%’ where user=’root’;
                  flush privileges;
(问题5:我猜测是在MySQL Workbench里输入,但显示开头mysql出错?)
2.在远程客户上运行: mysql -h 服务器IP地址 -P 3306 -u root -p


int main()
{
        MYSQL mysql;        //声明数据库变量
        mysql_init(&mysql);        //初始化数据库连接
        MYSQL_RES *result=NULL;
        MYSQL_FIELD *field;
        MYSQL_ROW row;
        int i,num;
        if(mysql_real_connect(&mysql,HOST,USERNAME,PASSWORD,DATABASE,0,NULL,CLIENT_FOUND_ROWS)) {//数据库连接函数,0指默认端口号3306,如其它端口提供服务,则如实写
                //连接成功
                printf("连接成功!\n");
                //mysql_query(&mysql,"SET NAMES UTF8");
                mysql_query(&mysql, "SET NAMES GB2312");
                //mysql_query(&mysql,"commit");
                //插入数据
                mysql_query(&mysql,"insert into student(xh,xm) values('lgl888','张三')");
                mysql_query(&mysql,"commit");//作用: 有时数据还在缓存中, 为了确保完成, 可以用commit提交一下事物。一般是不需要做的
                //查询数据
                i=mysql_query(&mysql,"select * from student");  //返回值为0则表示查询成功
                if(!i){
                        result=mysql_store_result(&mysql);
                        if(result){
                                //获取字段数量和名称
                                printf("---------------获取字段数量和名称---------------\n");
                                num=mysql_num_fields(result);
                                printf("字段共有%d个!\n",num);
                                while(field=mysql_fetch_field(result)){
                                        printf("字段名: %s\n",field->name);
                                }
                                //获取查询结果
                                printf("------------------获取查询结果------------------\n");
                                while(row=mysql_fetch_row(result)){
                                        printf("查询结果:xh=%s xm=%s xb=%s\n",row[0],row[1],row[2]);
                                }
                        }
                }else{
                        printf("查询失败!\n");
                }
        } else {
                //连接失败
                printf("连接失败!abc\n");
        }
        return 0;
}

谢谢解答!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-10 14:47:36 | 显示全部楼层
问题1:是的,这些设置需要在Dev C++软件上输入编译并运行前完成。

问题2:如果你的版本没有这个选项,可以尝试在菜单栏中找到“工具”->“编译器选项”->“命令行”,在“命令行”框中输入“-fexec-charset=gbk -static-libgcc -lmysql”。

问题3:一般来说,编译器版本不同不会影响程序的正确性。只要你的编译器能够支持MySQL的库文件和函数,就可以正常编译和运行程序。

问题4:这些代码需要在MySQL服务器上输入。服务器和远程客户端是两个不同的计算机,你需要在服务器上运行这些代码来设置远程访问权限。

问题5:你需要在命令行中输入这些代码,而不是在MySQL Workbench中。如果你遇到了“mysql出错”的问题,可能是因为你没有将MySQL的安装路径添加到系统环境变量中,你可以在“环境变量”中添加MySQL的安装路径来解决这个问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 20:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表