C语言连接MySQL数据库

合集下载

VS2019的C++项目连接MySQL的操作以及常见问题

VS2019的C++项目连接MySQL的操作以及常见问题

VS2019的C++项⽬连接MySQL的操作以及常见问题连接数据库操作1,将数据库安装好并配置好环境。

2,在项⽬属性页将⾃⼰的平台设置为与数据库对应的平台,然后在“项⽬–>属性->C/C++–>常规–>附加包含⽬录”中添加MySql Server的include⽬录。

3,在“项⽬–>属性->链接器–>常规->附加库⽬录”中添加MySql Server的lib⽬录。

4,在“项⽬–>属性->链接器–>输⼊->附加依赖项“中添加libmysql.lib。

5,测试代码如下1 #include <iostream>2 #include<mysql.h>3 #include<windows.h>45using namespace std;6 MYSQL* conn;7int main()8 {9const char* user = "root";10const char* password = "123456";11 conn = mysql_init(NULL);12if (mysql_real_connect(conn, "127.0.0.1", user, password, NULL, 0, NULL, 0) == NULL)13 cout << "数据库连接失败" << endl;14else15 cout << "数据库连接成功" << endl;16return0;1718 }6,若出现正常运⾏,则证明配置成功,如下图所⽰。

常见问题及解决⽅法1,问题>MyProject3.obj : error LNK2019: ⽆法解析的外部符号 _mysql_init@4,函数 _main 中引⽤了该符号>MyProject3.obj : error LNK2019: ⽆法解析的外部符号 _mysql_real_connect@32,函数 _main 中引⽤了该符号>E:\MySQL\mysql-8.0.26-winx64\lib\libmysql.lib : warning LNK4272: 库计算机类型“x64”与⽬标计算机类型“x86”冲突>D:\ProgramData\source\repos\MySolution\Debug\MyProject3.exe : fatal error LNK1120: 2 个⽆法解析的外部命令解决办法:这是因为数据库为X86架构的64位扩展(x86_64),其本质为64位,⽽我们的调试的平台使⽤的为X86(32位),这就造成了不兼容的问题,当我们在项⽬属性页设置的时候就应该将调试的平台改为位数据库对应的平台。

VC6.0连接MySQL大数据库

VC6.0连接MySQL大数据库

电力学院嵌入式系统应用安全课程论文题目: VC6.0连接MySQL数据库姓名:学号: 201132班级: 2011班院系:计算机科学与技术学院专业年级:信息安全2011级2014年6月8日通过VC开发MySQL数据库应用软件有多种方式:一、通过MyODBC界面二、通过Connector/C++l界面三、通过MySQL C API界面四、第三方封装的MySQL类在经过反复比较,我还是选择了MySQL C API方式来进行MySQL的开发。

在VC中使用MySQL的步骤如下:一、MYSQL的准备工作1.下载MySQL的服务器/客户端安装包我的开发环境是Windows,所以我下载的是MySQL for Windows mysql-5.6.19-win322.安装MySQL服务器/客户端包Cmd下进入mysql-5.6.19-win32 安装目录,我的安装目录是D:\mysql-5.6.19-win32\bin界面输入安装语句 sqld-unstall。

成功安装MYSQL3.运行MYSQL ,建立测试数据库及表启动MYSQL语句创建数据库语句创建表语句创建表中数据4.查看建立的表格二、VC设置准备打开vc++6.0,TOOLS->OPTIONS->DIRECTORIES,在其Include files添加MySQL 的include路径。

切换下拉框,选择Library files,添加MySQL的lib路径。

PROJECTS -->SETINGS-->LINK 在OBJECT/LIBARY MODULES 添加 libmysql.lib将MYSQL安装目录中的几个文件复制到VC工程文件夹中MySQL数据库安装之后在\MySQL \lib\opt目录下libmysql.liblibmysql.dll同时需要\MySQL\include目录下的几个文件:mysql_version.hmy_list.hmysql_.hmysql_time.hmysql.hmy_alloc.htypelib.h在VC的安装目录Microsoft Visual Studio\VC98\Lib下找到:WS2_32.LIB三、VC编程,建立工程WIN32 CONSOLE APPLICATION 代码#include <windows.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <mysql.h>#include <iostream>#pragma comment(lib,"libmysql.lib")//连接MysQL需要的库using namespace std;int main(){const char user[] = "root"; //usernameconst char pswd[] = ""; //passwordconst char host[] = "127.0.0.1"; //or"127.0.0.1"const char table[] ="testdb"; //databaseunsigned int port = 3306; //server portMYSQL myCont;MYSQL_RES *result;MYSQL_ROW sql_row;MYSQL_FIELD *fd;char column[32][32];int res;mysql_init(&myCont);if(mysql_real_connect(&myCont,host,user,pswd,table,port,NULL,0)){cout<<"connect succeed!"<<endl;mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文 res=mysql_query(&myCont,"select * from name_table");//查询if(!res){result=mysql_store_result(&myCont);//保存查询到的数据到resultif(result){int i,j;cout<<"number of result: "<<(unsigned long)mysql_num_rows(result)<<endl;for(i=0;fd=mysql_fetch_field(result);i++)//获取列名{strcpy(column[i],fd->name);}j=mysql_num_fields(result);for(i=0;i<j;i++){printf("%s\t",column[i]);}printf("\n");while(sql_row=mysql_fetch_row(result))//获取具体的数据{for(i=0;i<j;i++){printf("%s\n",sql_row[i]);}printf("\n");}}}else{cout<<"query sql failed!"<<endl;}}else{cout<<"connect failed!"<<endl;}if(result!=NULL) mysql_free_result(result);//释放结果资源mysql_close(&myCont);//断开连接return 0;}结果四、心得通过网络资料自学使用MY SQL连接vc的方法。

windows下c++连接mysql

windows下c++连接mysql

C++连接mysql 数据库环境:windows xp VC++6.0 mysql目的:实现建表,插入,检索,删表等常用功能。

VC6.0 的配置:菜单栏—》工具—》选项—》目录—》添加:C:\Program Files\MySQL\MySQL Server 6.0\includeC:\Program Files\MySQL\MySQL Server 6.0\lib\opt拷贝C:\Program Files\MySQL\MySQL Server 6.0\lib\opt下的libmysql.lib到C:\Program Files\Microsoft Visual Studio\VC98\Lib下写aa.cpp【注:一层层执行可以看到更好的效果】#include <winsock.h>#include <iostream>#include <string>#include <mysql.h>using namespace std;#pragma comment(lib, "ws2_32.lib")#pragma comment(lib, "libmysql.lib")//单步执行,不想单步执行就注释掉#define STEPBYSTEPint main(){cout<<"****************************************"<<endl;#ifdef STEPBYSTEPsystem("pause");#endif//必备的一个数据结构MYSQL mydata;//初始化数据库if(0==mysql_library_init(0,NULL,NULL)){cout<<"mysql_library_init() succeed"<<endl;}else{cout<<"mysql_library_init() failed"<<endl;return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//初始化数据结构if(NULL!=mysql_init(&mydata)){cout<<"mysql_init() succeed"<<endl;}else{cout<<"mysql_init() failed"<<endl;return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//在连接数据库之前,设置额外的连接选项//可以设置的选项很多,这里设置字符集,否则无法处理中文if(0==mysql_options(&mydata,MYSQL_SET_CHARSET_NAME,"gbk")) {cout<<"mysql_options() succeed"<<endl;}else{cout<<"mysql_options() failed"<<endl;return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//连接数据库if(NULL!=mysql_real_connect(&mydata,"localhost","root","test","test",3306,NULL ,0))//这里的地址,用户名,密码,端口可以根据自己本地的情况更改{cout<<"mysql_real_connect() succeed"<<endl;}else{cout<<"mysql_real_connect() failed"<<endl;return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//sql字符串string sqlstr;//创建一个表sqlstr ="CREATE TABLE IF NOT EXISTS user_info";sqlstr+="(";sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";sqlstr+="user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The SummationOf Using Time'";sqlstr+=");";if(0==mysql_query(&mydata,sqlstr.c_str())){cout<<"mysql_query() create table succeed"<<endl;}else{cout<<"mysql_query() create table failed"<<endl;mysql_close(&mydata);return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//向表中插入数据sqlstr ="INSERT INTO user_info(user_name) VALUES('公司名称'),('一级部门'),('二级部门'),('开发小组'),('姓名');";if(0==mysql_query(&mydata,sqlstr.c_str())){cout<<"mysql_query() insert data succeed"<<endl;}else{cout<<"mysql_query() insert data failed"<<endl;mysql_close(&mydata);return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//显示刚才插入的数据sqlstr="SELECT user_id,user_name,user_second_sum FROM user_info"; MYSQL_RES *result=NULL;if(0==mysql_query(&mydata,sqlstr.c_str())){cout<<"mysql_query() select data succeed"<<endl;//一次性取得数据集result=mysql_store_result(&mydata);//取得并打印行数int rowcount=mysql_num_rows(result);cout<<"row count: "<<rowcount<<endl;//取得并打印各字段的名称unsigned int fieldcount=mysql_num_fields(result);MYSQL_FIELD *field=NULL;for(unsigned int i=0;i<fieldcount;i++){field=mysql_fetch_field_direct(result,i);cout<<field->name<<"\t\t";}cout<<endl;//打印各行MYSQL_ROW row=NULL;row=mysql_fetch_row(result);while(NULL!=row){for(int i=0; i<fieldcount;i++){cout<<row[i]<<"\t\t";}cout<<endl;row=mysql_fetch_row(result);}}else{cout<<"mysql_query() select data failed"<<endl; mysql_close(&mydata);return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//删除刚才建的表sqlstr="DROP TABLE user_info";if(0==mysql_query(&mydata,sqlstr.c_str())){cout<<"mysql_query() drop table succeed"<<endl; }else{cout<<"mysql_query() drop table failed"<<endl; mysql_close(&mydata) ;return -1;}mysql_free_result(result);mysql_close(&mydata);mysql_server_end();system("pause");return 0;}vc++添加c++文件:添加后:运行:没有错误的话会在debug下生成可执行文件:运行aa.exe:查看数据库:没用C连接之前:C连接mysql修改后:DONE!!1。

C连接MYSQL数据库的3种方法及示例

C连接MYSQL数据库的3种方法及示例

C连接MYSQL数据库的3种方法及示例连接MYSQL数据库有多种方法,下面介绍其中三种常用的方法。

1.使用CAPI连接MYSQL数据库CAPI是官方提供的一套用于连接和操作MYSQL数据库的函数库。

使用该API,可以在C程序中直接连接MYSQL数据库,并执行各种SQL语句。

以下是一个连接MYSQL数据库的示例:```c#include <mysql.h>int maiMYSQL *conn;MYSQL_RES *res;MYSQL_ROW row;conn = mysql_init(NULL);if (conn == NULL)fprintf(stderr, "mysql_init failed\n");return 1;}if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL)fprintf(stderr, "mysql_real_connect failed: %s\n", mysql_error(conn));mysql_close(conn);return 1;}if (mysql_query(conn, "SELECT * FROM table"))fprintf(stderr, "mysql_query failed: %s\n",mysql_error(conn));mysql_close(conn);return 1;}res = mysql_use_result(conn);while ((row = mysql_fetch_row(res)) != NULL)printf("%s %s %s\n", row[0], row[1], row[2]);}mysql_free_result(res);mysql_close(conn);return 0;```上述代码首先初始化MYSQL对象,然后使用mysql_real_connect函数连接MYSQL数据库。

【C#】使用MySql.Data.dll连接MySQL数据库

【C#】使用MySql.Data.dll连接MySQL数据库

【C#】使⽤MySql.Data.dll连接MySQL数据库准备⼯作在Visual Studio中新建⼀个C#的控制台应⽤程序。

确保后台已经启⽤了MySQL57服务。

在MySQL的安装路径下找到DLL,默认位置是 C:\Program Files (x86)\MySQL\ 6.9\Assemblies\v4.5\MySql.Data.dll 。

更多写代码连接MySQL的⽅法(通过MySQLConnector连接器),参考⽂档 C:\Program Files (x86)\MySQL\ 6.9\Documentation\ConnectorNET.chm 。

在⽂档的Users Guide-Programming中有代码案例。

把MySql.Data.dll引⼊项⽬中。

v4.5表⽰.NetFramework框架的版本号,⼀定要保证使⽤的DLL与项⽬的.NetFramework版本⼀致,否则运⾏时报错找不到DLL,报错如下:1>F:\Learning\CSharpConnectMySQL\CSharpConnectMySQL\Program.cs(1,7,1,12): error CS0246: The type or namespace name 'MySql' could not be found (are you missing a using directive or an assembly reference?)测试增删改查using MySql.Data.MySqlClient;using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CSharpConnectMySQL{class Program{static void Main(string[] args){// 服务器地址;端⼝号;数据库;⽤户名;密码string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root"; // ⽤户名和密码在MySQL定义的// 创建连接MySqlConnection conn = new MySqlConnection(connectStr);try{// 打开连接conn.Open();Console.WriteLine("已经建⽴连接");//Query(conn); // 测试查询//Insert(conn); // 测试插⼊//Update(conn); // 测试更新//Delete(conn);// 测试删除}catch (Exception e){Console.WriteLine(e.ToString());}finally{// 关闭连接conn.Close();Console.WriteLine("数据库已关闭");}Console.ReadKey();}///<summary>///查询///</summary>///<param name="conn"></param>private static void Query(MySqlConnection conn){// 创建命令string sql = "select * from users";MySqlCommand cmd = new MySqlCommand(sql, conn);// 读取数据MySqlDataReader reader = cmd.ExecuteReader();while (reader.Read()) // true表⽰能读取该⾏数据{ // ⽅式⼀:访问数组 Console.WriteLine(reader[0].ToString() + reader[1].ToString()); // reader[0]是读出来的第⼀列属性// ⽅式⼆:根据列数 Console.WriteLine(reader.GetInt32(0));// ⽅式三:根据列名 Console.WriteLine(reader.GetInt32("user_id"));}}///<summary>///插⼊,增加数据///</summary>///<param name="conn"></param>private static void Insert(MySqlConnection conn){// 创建命令string sql = "insert into user(user_name, user_pwd) values('asdAa','2345')";MySqlCommand cmd = new MySqlCommand(sql, conn);// 添加⼀条记录int result = cmd.ExecuteNonQuery();Console.WriteLine("数据库中受影响的⾏数 = " + result);}///<summary>///更新,改数据///</summary>///<param name="conn"></param>private static void Update(MySqlConnection conn){// 创建命令string sql = "update user set user_name = 'newName', user_pwd = '66777' where user_id = '3'";MySqlCommand cmd = new MySqlCommand(sql, conn);// 更新记录int result = cmd.ExecuteNonQuery();Console.WriteLine("数据库中受影响的⾏数 = " + result);}///<summary>///删除数据///</summary>///<param name="conn"></param>private static void Delete(MySqlConnection conn){// 创建命令string sql = "delete from user where user_id = '4'";MySqlCommand cmd = new MySqlCommand(sql, conn);// 删除记录int result = cmd.ExecuteNonQuery();Console.WriteLine("数据库中受影响的⾏数 = " + result);}}}传参拼接SQL语句///<summary>///验证⽤户名和密码///</summary>///<param name="conn"></param>///<param name="userName"></param>///<param name="password"></param>///<returns></returns>private static bool Verify(MySqlConnection conn, string userName, string password){// ⽅式⼀:组拼sql//string sql = "select * from user where user_name = '" + userName + "' and user_pwd = '" + password + "'"; //MySqlCommand cmd = new MySqlCommand(sql, conn);// ⽅式⼆:参数标记string sql = "select * from user where user_name = @p1 and user_pwd = @p2";MySqlCommand cmd = new MySqlCommand(sql, conn);cmd.Parameters.AddWithValue("p1", userName); // 这⾥会根据输⼊的类型,⾃动判断要不要加单引号''cmd.Parameters.AddWithValue("p2", password);MySqlDataReader reader = cmd.ExecuteReader();if (reader.Read()) // 要么查出⼀条数据,要么0条。

visualstudio2019连接MYSQL数据库详细教程(C#代码)

visualstudio2019连接MYSQL数据库详细教程(C#代码)

visualstudio2019连接MYSQL数据库详细教程(C#代码)⼀、⼯具:1.visual stdio20192.MySQL数据库⼆、添加动态链接:Visual Studio中选择项⽬->管理NuGet程序包(N) 然后在浏览⾥⾯搜索MySql.Data并进⾏安装。

三、实现过程:1.创建⼀个类来放数据库的连接和各种操作,我这⾥创建的是SQLManage2.加⼊需要的头⽂件using MySql.Data.MySqlClient;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;3.连接数据库,并返回⼀个MySqlConnection对象public MySqlConnection getConn(){string connetStr = "server=127.0.0.1;port=3306;user=root;password=root;database=hos_managesystem;Charset=utf8;";MySqlConnection conn = new MySqlConnection(connetStr);return conn;}其中server是数据库所在⽹络的IP地址,127.0.0.1代表本地,port是数据库设置的端⼝号,user⽤户名,password密码,database是要连接的数据库名,Charset=utf8主要是处理中⽂编码问题4.查询操作MySqlConnection conn = getConn(); //连接数据库conn.Open(); //打开数据库连接string sql = "select * from user'" ;MySqlCommand cmd = new MySqlCommand(sql, conn);MySqlDataReader mdr = cmd.ExecuteReader();if (mdr.Read()){string str = mdr["authority"].ToString();//接收⼀个返回值//对查询到数据进⾏相应的操作}conn.Close();5.增删改操作类似,只是sql语句不相同,这⾥以插⼊操作为例MySqlConnection conn = getConn(); //连接数据库conn.Open(); //打开数据库连接string sql = "insert into user values('123','123')";MySqlCommand cmd = new MySqlCommand(sql, conn);cmd.ExecuteNonQuery();conn.Close();说明:在进⾏对数据库具体操作时建议在SQLManage类中直接写不同的函数来实现,在Form代码处创建SQLManage对象来引⽤对应的⽅法,这样可以使代码更加简洁,同时也⽅便维护。

C语言数据库操作

C语言数据库操作C语言是一种通用的编程语言,也可以用于数据库操作。

在C语言中,我们可以使用一些库来连接和操作数据库,比如SQLite和MySQL。

本文将介绍如何在C语言中进行数据库操作,包括连接数据库、创建表、插入和查询数据等。

1.连接数据库:要在C语言中连接数据库,我们需要引入相应的库。

例如,使用SQLite库的代码如下:```c#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>int maisqlite3 *db;int rc = sqlite3_open("test.db", &db);if (rc != SQLITE_OK)fprintf(stderr, "Cannot open database: %s\n",sqlite3_errmsg(db));return 1;} elsefprintf(stdout, "Database opened successfully\n");}sqlite3_close(db);return 0;```在上面的代码中,我们首先通过调用`sqlite3_open`函数打开一个名为`test.db`的数据库。

如果打开成功,函数将返回`SQLITE_OK`。

否则,我们可以通过`sqlite3_errmsg`函数获取错误信息。

2.创建表:在连接数据库后,我们可以在其中创建表。

下面的代码演示了如何在SQLite数据库中创建表:```c#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>int maisqlite3 *db;char *sql;char *errmsg = 0;int rc = sqlite3_open("test.db", &db);if (rc != SQLITE_OK)fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));return 1;} elsefprintf(stdout, "Database opened successfully\n");}sql = "CREATE TABLE COMPANY(""IDINTPRIMARYKEYNOTNULL,""NAMETEXTNOTNULL,""AGEINTNOTNULL,""ADDRESSCHAR(50),""SALARYREAL);";rc = sqlite3_exec(db, sql, 0, 0, &errmsg);if (rc != SQLITE_OK)fprintf(stderr, "SQL error: %s\n", errmsg);sqlite3_free(errmsg);} elsefprintf(stdout, "Table created successfully\n");}sqlite3_close(db);return 0;```在上面的代码中,我们使用`sql`字符串来定义一个创建表的SQL语句。

mysql连接方法

mysql连接方法要连接到MySQL数据库,您需要使用MySQL客户端或编程语言中的数据库连接库。

以下是使用几种常见方法连接到MySQL数据库的说明:1. 使用MySQL命令行客户端:打开终端或命令提示符。

输入以下命令格式:`mysql -u [用户名] -p`按Enter键后,系统会提示您输入密码。

输入密码并按Enter键。

如果输入的用户名和密码正确,您将成功连接到MySQL数据库。

2. 使用MySQL Workbench:打开MySQL Workbench应用程序。

在主界面上,点击“+”图标以创建一个新的连接。

在连接配置中,输入连接名称、主机名、端口、用户名和密码。

点击“Test Connection”按钮以验证连接设置是否正确。

如果测试成功,点击“OK”按钮保存连接。

之后,您可以从MySQL Workbench的连接面板连接到该数据库。

3. 使用编程语言中的数据库连接库:以下是使用Python中的`mysql-connector-python`库连接到MySQL数据库的示例:首先,确保已安装`mysql-connector-python`库。

您可以使用以下命令通过pip进行安装:```shellpip install mysql-connector-python```然后,您可以使用以下代码连接到MySQL数据库:```pythonimport创建数据库连接cnx = (user='[用户名]', password='[密码]', host='[主机名]', port='[端口]')创建游标对象,用于执行SQL查询cursor = ()```在此示例中,您需要将`[用户名]`、`[密码]`、`[主机名]`和`[端口]`替换为您自己的MySQL数据库凭据和连接参数。

es put语句 -回复

es put语句-回复Centos7 C语言开发数据库连接项目实例在本文中,我们将探讨使用C语言在Centos7操作系统上开发数据库连接的项目实例。

我们将介绍如何建立数据库连接,执行SQL语句以及处理结果集等步骤。

1. 准备工作:在开始项目之前,我们需要确保已经安装了Centos7操作系统,并且系统中已经安装了所需的开发环境,如GCC编译器、MySQL数据库等。

假设我们已经完成了这些准备工作。

2. 创建新项目:首先,我们需要创建一个新的C语言项目。

我们可以在终端中使用以下命令创建一个新的项目文件夹,并切换到该文件夹中:mkdir mydbprojectcd mydbproject3. 添加必要的库文件:为了能够连接数据库,我们需要添加相应的库文件到我们的项目中。

在Centos7中,我们可以使用yum命令来安装MySQL的C语言开发库:yum install mysql-devel这将安装所需的库文件到系统中。

接下来,我们需要在我们的项目中链接这些库文件。

在项目文件夹中创建一个名为"Makefile"的文件,并将以下内容添加到其中:all: mainmain: main.ogcc -o main main.o -lmysqlclientmain.o: main.cgcc -c main.cclean:rm -f main.o main保存并退出文件。

然后,我们可以在终端中使用以下命令编译项目:make这将生成一个名为"main"的可执行文件,该文件是我们的项目的入口点。

4. 建立数据库连接:现在,我们可以开始编写代码来建立数据库连接。

在项目文件夹中创建一个名为"main.c"的文件,并将以下代码添加到其中:c#include <mysql/mysql.h>int main() {MYSQL *conn;初始化连接conn = mysql_init(NULL);连接数据库if (!mysql_real_connect(conn, "localhost", "root", "password", "mydb", 0, NULL, 0)) {printf("Error connecting to database: s\n",mysql_error(conn));return 1;}执行SQL语句...关闭连接mysql_close(conn);return 0;}在上面的代码中,我们首先调用mysql_init()函数来初始化我们的连接对象。

C语言操作MYSQL

C语言操作MYSQLC语言是一种通用的编程语言,可以与各种数据库系统进行交互。

在这篇文章中,我们将介绍如何使用C语言进行MySQL数据库的操作,并提供一些示例代码。

1.包含头文件为了使用MySQL C Connector库的函数,我们需要在代码中包含相应的头文件。

头文件通常命名为mysql.h。

#include <mysql.h>2.连接到MySQL服务器在使用MySQL数据库之前,我们需要建立与MySQL服务器的连接。

为了连接到MySQL服务器,我们需要提供服务器主机名、用户名、密码等信息。

以下是连接到MySQL服务器的示例代码。

MYSQL *conn; // MySQL连接句柄conn = mysql_init(NULL); // 初始化连接mysql_real_connect(conn, "localhost", "root", "password", "database", 0, NULL, 0); // 连接到MySQL服务器在上面的示例中,我们使用了mysql_init函数来初始化连接,然后使用mysql_real_connect函数来实际连接到MySQL服务器。

参数说明如下:- conn:用于存储连接句柄的指针。

- "localhost":MySQL服务器的主机名。

如果MySQL服务器在同一台机器上,可以使用"localhost"。

如果MySQL服务器在另一台机器上,则需要提供相应的主机名。

- "root":MySQL服务器的用户名。

- "password":MySQL服务器的密码。

- "database":要连接的数据库名称。

如果连接到默认数据库,可以将其设置为NULL。

-其他参数:用于指定连接的其他选项,如端口号等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言连接MySQL数据库收藏
前几天公司让我做C语言和MySQL数据库的交互操作,费了九牛二虎之力之后总算做出来了,今天特地把源代码贴出来供大家学习;如有人想要打包项目可以加我QQ260990509,注明技术交流,即可获得打包之后的项目!
#if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译
#include <windows.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"
#include <winsock.h>
#include <iostream.h>
#include <string.h>
MYSQL mysql,*sock; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数
MYSQL_RES *res; //查询结果集,结构类型
MYSQL_FIELD *fd ; //包含字段信息的结构
MYSQL_ROW row ; //存放一行查询结果的字符串数组
char qbuf[300]; //存放查询sql语句字符串
//定义数据库操作的宏,也可以不定义留着后面直接写进代码
#define MAX_STRING_LENGTH 256
//定义元素个数
#define MAX_ELEMENT_LENGTH 33
//定义显示的列数
#define ELEMENTS_PER_LINE 15
typedef struct
{
char line[MAX_STRING_LENGTH];
char data[ELEMENTS_PER_LINE][MAX_ELEMENT_LENGTH];
}DATA;
void main()
{
//申明数据库操作函数
int insertData(DATA parameter);
//打开指定文件
FILE *fp=fopen("E:\\file.txt","r");
//创建结构体类型实体
DATA data;
memset(&data, 0x00, sizeof(DATA));
//得到一行数据
fgets(data.line, MAX_STRING_LENGTH, fp);
while (!feof(fp))
{
int i=0,index=0;
for(i=0; i<ELEMENTS_PER_LINE; i++)
{
//分隔字符串按逗号分隔
sscanf(data.line+index,"%[^,]", data.data[i]);
index+=strlen(data.data[i])+1;
}
insertData(data);
printf("line=%s\n", data.line);
//循环打印,每行的数据分隔之后的数据
for(i=0; i<ELEMENTS_PER_LINE; i++)
{
printf("data[%d]=%s\n", i,data.data[i]);
}
printf("\n\n");
//再次读取一行数据
fgets(data.line, MAX_STRING_LENGTH, fp);
}
}
//连接数据库执行插入数据操作参数为每次构造起来的实体指针
int insertData(DATA parameter)
{
//初始化MySQL服务器
mysql_init(&mysql);
//获得连接
if (!(sock = mysql_real_connect(&mysql,"localhost","root","19890505","test",0,NULL,0))) {
fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql));
perror("");
exit(1);
}
//以指定格式构建差爱如语句字符串
sprintf(qbuf,"insert into postranceaction values
('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",parameter.dat a[0],parameter.data[1],parameter.data[2],param eter.data[3],parameter.data[4],paramet er.data[5],parameter.data[6],parameter.data[7],parameter.data[8],parameter.data[9],par ameter.data[10],param eter.data[11],parameter.data[12],parameter.data[13],parameter.d ata[14]);
//执行插入操作并判断是否插入成功,
if(mysql_query(sock,qbuf))
{
//如果插入数据出错,则告知系统用户
printf("插入数据出现错误\n");
printf("Couldn't get result from %s\n", mysql_error(sock));
}
else
{
//如果插入数据成功,告知系统用户插入数据成功
printf("当前数据插入成功\n");
}
//关闭数据库连接
mysql_close(sock);
return 0;
}
//C语言实现数据查询操作
int addData()
{
mysql_init(&mysql);
if (!(sock = mysql_real_connect(&mysql,"localhost","root","19890505","test",0,NULL,0))) {
fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql));
perror("");
exit(1);
}
sprintf(qbuf,SELECT_QUERY,2);
if(mysql_query(sock,qbuf)) {
fprintf(stderr,"Query failed (%s)\n",mysql_error(sock));
exit(1);
}
if (!(res=mysql_store_result(sock))) {
fprintf(stderr,"Couldn't get result from %s\n", mysql_error(sock));
exit(1);
}
printf("number of fields returned: %d\n",mysql_num_fields(res));
while (row = mysql_fetch_row(res)) {
printf("Ther userid is %d username is: %s\n",row[0],row[1]) ;
puts( "query ok !\n" ) ;
}
mysql_free_result(res);
mysql_close(sock);
exit(0);
return 0; //. 为了兼容大部分的编译器加入此行
}
/*
程序注意事项:
项目编译的时候需要用到的文件有:
mysql.h LIBCPD.LIB libmysql.dll LIBCD.LIB libmysql.lib my_alloc.h my_list.h mysql_com.h mysql_time.h mysql_version.h typelib.h
编译程序时候如果需要配置环境变量
工程-->设置-->连接-->对象库/模块里边添加libmysql.lib环境变量
此时需要注意的是libmysql.lib这个文件要和你的项目文件放在一起
*/。

相关文档
最新文档