Dec-cpp中连接MYSQL实例(How connect to MYSQL in Dev-cpp)

本文详细介绍了如何在Dev-C++环境下使用C++ API连接并操作MySQL数据库,包括必要的库引用、连接设置和SQL查询步骤,适合初学者实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在网上找了很多关于使用MYSQL C API的资料,和实例。可不是VC下的,就是BCB的,要不就是Linux下的,而我一直想在Win下用标准C++来做东西(美其名曰是想要移植性 :) )。所以想在Dev-cpp下使用 MYSQL C API尝试连接MYSQL。下面把心得和连接、配置方法写一下。


1.当然要先安装MySQL数据库了。我安的是5.0

2.我的Dev-cpp版本是4.9.9.2,操作系统是Windows XP SP2 。
 
    a)为Dev-cpp下载MySQL的包。方法有两个:
             1)使用Dev-cpp的更新功能。“工具”-〉“检查更新” 如图1


                           图 1


                                  图 2
在“Select devpak server”中选择“devpaks.org”如图3所示

                          
                            图 3
点击“Check for updates”在得到的文件列表中选择“libmysql”


                            图 4
其他的就是下载和安装了。(图5-7)


               图 5



          图 6

 
                图 7

        b)直接到devpaks.org下载,然后使用package manager安装


                            图   8

3.现在就可以新建工程,来在自己的程序中使用MySQL 提供的C API了。

*注意: 需要对工程作如下设置:
           1)“工程”-〉“工程属性” 中 “参数”选项卡
     在“编译器”和“C++编译器”中加入
    “-Wall”和“-W”不包括“”,在“连接器”中加入“-lmysql”不包括“”
如图9



              
图 9
        2)在程序中加入
                  
#include <mysql/mysql.h>

下面给出一个简单的示例程序。
#include <windows.h>
#include 
<iostream>
#include 
<mysql/mysql.h>

#define SELECT_QUERY "select * from stu "

using namespace std;

int main(int argc, char *argv[])
{
    
//connection params
    char *host = "localhost";
    
char *user = "root";
    
char *pass = "123";
    
char *db = "mydb";

    
//sock
    MYSQL *sock;
    MYSQL_RES 
*res;
      sock 
= mysql_init(0);
    
if (sock) cout << "sock handle ok!" << endl;
    
else {
         cout 
<< "sock handle failed!" << endl;
         
return EXIT_FAILURE;
    }


    
//connection
    if (mysql_real_connect(sock, host, user, pass, db, 0, NULL, 0))
         cout 
<< "connection ok!" << endl;
    
else {
         cout 
<< "connection failed!" << endl;
         
return EXIT_FAILURE;
    }

       
    
//query
    if (mysql_query (sock, SELECT_QUERY ))
    
{
      cout 
<< "Query failed " << mysql_error(sock) << endl;
      exit(
1);
    }

    
if ( !( res = mysql_store_result( sock )))
    
{
      cout 
<< "Couldn't get result from " << mysql_error(sock) <<endl;
      exit(
1);
    }

    
    MYSQL_FIELD 
*field;
    MYSQL_ROW row;
    
while ((field = mysql_fetch_field(res)))
    
{
       printf(
"field name %s ", field->name);
    }

    
    
while ( row = mysql_fetch_row ( res ))
    
{
       cout
<<row[0]<<"     "<<row[1]<<endl;
    }


     
    
    system(
"PAUSE");
    
    
//closing connection
    mysql_free_result ( res );
    mysql_close(sock);
    
return EXIT_SUCCESS;
}


运行结果



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值