一段极简单的操作 mysql 的 c++ 代码

我之前还是一直想用 connector 来连接的,但是因为 mysql 官方提供的文件和本地的编译系统并不一样,所以需要把 connector 加上 

-stdlib=libc++ 重新编译一遍。Hah 我不。

还能怎样呢?用 ODBC 吧!尝试用 mac 的 ODBC administrator,但是这个太老了,而且不方便(我觉得不方便)所以也没采用。

于是最后选择使用 mysql 的 C API 来连接数据库,而以下就是一个极为简单的例子:

#include <iostream>
#include <vector>
#include <string>
#include <mysql.h>
using namespace std;

int main()
{
    ios::sync_with_stdio (false);
    MYSQL connection;
    mysql_init (&connection);
    mysql_real_connect (&connection,"localhost", "root", "1234",
                                    "world", 3306, nullptr, 0);
    // mysql_query 是一个值-结果函数
    int query_success = mysql_query (&connection, "SELECT * FROM city LIMIT 10");
    if (query_success == 0){
        // 保存查询结果到 result
        MYSQL_RES* result = mysql_store_result (&connection);
        if (result){
            std::cout << "Number of result: "
                      << static_cast<size_t>(mysql_num_rows(result)) << "\n";
            // 获取列名
            MYSQL_FIELD* field;
            vector<string> column;
            while ((field = mysql_fetch_field (result))){
                column.emplace_back(field->name);
            }
            // 或者使用 mysql_num_fields(result); 得到结果的行数
            for (const auto& col : column){
                cout << col << "\t";
            }
            cout << "\n";
            MYSQL_ROW row;
            while ((row = mysql_fetch_row(result))){
                for (size_t i = 0; i != column.size(); ++i){
                    std::cout << row[i] << "\t";
                }
                cout << "\n";
            }
        }
        mysql_free_result(result);
    }
    mysql_close(&connection);
    return 0;
}

再做一些小改动:

#include <iostream>
#include <vector>
#include <string>
#include <mysql.h>
using namespace std;

int main()
{
    ios::sync_with_stdio (false);
    MYSQL connection;
    mysql_init (&connection);
    mysql_real_connect (&connection,"localhost", "root", "1234",
                                    "world", 3306, nullptr, 0);
    // mysql_query 是一个值-结果函数
    int query_success = mysql_query (&connection, "SELECT * FROM city");
    if (query_success == 0){
        // 保存查询结果到 result
        MYSQL_RES* result = mysql_store_result (&connection);
        if (result){
            cout << "Number of result: "
                      << static_cast<size_t>(mysql_num_rows(result)) << "\n";
            MYSQL_FIELD* field;
            while ((field = mysql_fetch_field (result))){
                cout << field->name << "\t";
            }
            cout << "\n";
            MYSQL_ROW row;
            auto const field_num = mysql_num_fields(result);
            while ((row = mysql_fetch_row(result))){
                for (size_t i = 0; i != field_num; ++i){
                    std::cout << row[i] << "\t";
                }
                cout << "\n";
            }
        }
        mysql_free_result(result);
    }
    mysql_close(&connection);
    return 0;
}
时间: 2024-10-17 18:21:59

一段极简单的操作 mysql 的 c++ 代码的相关文章

codeigniter 操作mysql的PHP代码--更新

支持标前缀 1)查询不等于且有等于 $this->db->get_where('host',array('host'=>'ddd','id !='=>0))->row(); 2)2表相交 return $this->db ->select('f.*,count(s.id) as subtotal') ->from('category as f')->join('category s', 'f.id=s.upid', 'left') ->where

python + docker, 实现天气数据 从FTP获取以及持久化(二)-- python操作MySQL数据库

前言 在这一节中,我们主要介绍如何使用python操作MySQL数据库. 准备 MySQL数据库使用的是上一节中的docker容器 “test-mysql”. Python 操作 MySQL 我们使用的IDE是 “神奇” 的 pycharm: 1. 首先新建一个python的项目,并且安装 “mysql-connector-python”. “mysql-connector-python” 是MySQL官方对于python的数据驱动,感兴趣的童鞋可以移步这里: https://dev.mysql

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

简单的在jsp页面操作mysql

---恢复内容开始--- 上一篇讲了在DOS界面下操作mysql 现在我们来说说怎么在jsp页面中操作mysql 要用jsp页面操作mysql需要jdbc(不是非要jdbc,还有其他的) 下载地址:www.oracle.com 移动到最下面,找到下面这四个框,点那个标记起来的 在左侧找到这个并点击 然后点击下面两个任意一个,都是调到同一个界面 在下面找到两个东西 随便选择一个点击下载,点那两个大的按钮会叫你登录,我们点下面那个"No thanks,just start my download&q

mysql模块简单实用操作-----nodejs

1 //mysql模块简单实用操作 2 3 var mysql = require('mysql'); 4 5 mc = {}; 6 7 8 var dbconfig = { 9 host : 'xxxxxxxxxx', 10 user : 'xxx', 11 password : 'xxx', 12 database : 'xxxxx' 13 }; 14 15 16 17 mc.sqlExc = function (sql, next) { 18 var db = mysql.createCo

python操作MySQL 模拟简单银行转账操作

一.基础知识 1.MySQL-python的安装 下载,然后 pip install 安装包 2.python编写通用数据库程序的API规范 (1).数据库连接对象 connection,建立python客户端与数据库的网络连接,创建方法为 MySQLdb.Connect(参数) 参数有六个:     host(MySQL服务器地址,一般本地为127.0.0.1) port(MySQL服务器端口号) user(用户名) passwd(密码) db(数据库名称) charset(连接编码) con

C#中简单操作Mysql数据库

以C#访问MySQL数据库,执行简单的CRUD. MySql.Data.dll是C#操作MySQL的驱动文件,是C#连接MySQL必要插件,使C#语言更简洁的操作MySQL数据库.可以用NuGet命令安装 PM>Install-Package MySql.Data -Version 8.0.16 项目中添加该组件的引用,在代码页里输入using MySql.Data.MySqlClient;我们就可以顺利的使用该类库的函数建立连接了. 数据库连接字符串写法为:server=服务器ip地址;Use

python简单操作mysql

引: 要想使用python操作mysql需要安装mysql-python插件,可以到mysql官网http://dev.mysql.com/downloads/connector/python/进行下载 我所使用的版本为MySQL-python-1.2.5.win32-py2.7,代表只支持使用python2.7. 相关的mysql操作请参考mysql 基本操作 下面为进行mysql增.删.改.查等相应操作: 查: #!/usr/bin/env python # --*-- coding:utf

通过php简单操作mysql

除了在终端操作mysql外,还可以在php文件也可以操作mysql,步骤如下: 1.链接数据库:mysqli_connect(host,user[,password]); <1>host一般写localhost或者127.0.0.1 <2>user是root <3>有密码就写,没密码就不写 $connect = mysqli_connect("127.0.0.1","root","chencuixin644152&quo