MySQL与Dev C++连接
按给出步骤如下:#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,row,row);
}
}
}else{
printf("查询失败!\n");
}
} else {
//连接失败
printf("连接失败!abc\n");
}
return 0;
}
谢谢解答!!!!! 问题1:是的,这些设置需要在Dev C++软件上输入编译并运行前完成。
问题2:如果你的版本没有这个选项,可以尝试在菜单栏中找到“工具”->“编译器选项”->“命令行”,在“命令行”框中输入“-fexec-charset=gbk -static-libgcc -lmysql”。
问题3:一般来说,编译器版本不同不会影响程序的正确性。只要你的编译器能够支持MySQL的库文件和函数,就可以正常编译和运行程序。
问题4:这些代码需要在MySQL服务器上输入。服务器和远程客户端是两个不同的计算机,你需要在服务器上运行这些代码来设置远程访问权限。
问题5:你需要在命令行中输入这些代码,而不是在MySQL Workbench中。如果你遇到了“mysql出错”的问题,可能是因为你没有将MySQL的安装路径添加到系统环境变量中,你可以在“环境变量”中添加MySQL的安装路径来解决这个问题。
页:
[1]