ubuntu c++连接mysql使用api接口用法

C++链接MySQL基本例子:

本人系统为Ubuntu16.04,因此建立了一个Cmake工程;

CMakeLists.txt文件内容如下:

CMAKE_MINIMUM_REQUIRED (VERSION 3.0)

PROJECT (mysqlTest)

set(CMAKE_CXX_STANDARD 14)

ADD_EXECUTABLE(mysqlTestBin mysqlTest.cpp)

TARGET_LINK_LIBRARIES(mysqlTestBin mysqlclient)

mysqlTest.cpp内容如下:

#include <stdio.h>
#include <vector>
#include <iostream>
#include <mysql/mysql.h>

int main(int argc,char *argv[])
{
    MYSQL conn;
    int res;
    mysql_init(&conn);
    if(mysql_real_connect(&conn, "localhost", "mysql_user", "password", "database_name", 0, NULL, CLIENT_FOUND_ROWS))
    {
        std::cout << "connect success!" << std::endl;
        std::string sql = "insert into test (name, number) values('测试', 1234)";
        res=mysql_query(&conn, sql.c_str());
        if(res)
        {
            std::cout << "error" << std::endl;
        }
        else
        {
            std::cout << "OK" << std::endl;
        }

    }
    mysql_close(&conn);
    return 0;
}

上述代码做了mysql的链接以及简单操作;


MySQL的C++接口API

mysql_affected_rows() //返回被最新的UPDATE, DELETE或INSERT查询影响的行数。

mysql_close() //关闭一个服务器连接。

mysql_connect() //连接一个MySQL服务器。该函数不推荐;使用mysql_real_connect()代替。

mysql_change_user() //改变在一个打开的连接上的用户和数据库。

mysql_create_db() //创建一个数据库。该函数不推荐;而使用SQL命令CREATE DATABASE。

mysql_data_seek() //在一个查询结果集合中搜寻一任意行。

mysql_debug() //用给定字符串做一个DBUG_PUSH。

mysql_drop_db() //抛弃一个数据库。该函数不推荐;而使用SQL命令DROP DATABASE。

mysql_dump_debug_info() //让服务器将调试信息写入日志文件。

mysql_eof() //确定是否已经读到一个结果集合的最后一行。这功能被反对;
mysql_errno()或mysql_error()可以相反被使用。

mysql_errno() //返回最近被调用的MySQL函数的出错编号。

mysql_error() //返回最近被调用的MySQL函数的出错消息。

mysql_escape_string() //用在SQL语句中的字符串的转义特殊字符。

mysql_fetch_field() //返回下一个表字段的类型。

mysql_fetch_field_direct() //返回一个表字段的类型,给出一个字段编号。

mysql_fetch_fields() //返回一个所有字段结构的数组。

mysql_fetch_lengths() //返回当前行中所有列的长度。

mysql_fetch_row() //从结果集合中取得下一行。

mysql_field_seek() //把列光标放在一个指定的列上。

mysql_field_count() //返回最近查询的结果列的数量。

mysql_field_tell() //返回用于最后一个mysql_fetch_field()的字段光标的位置。

mysql_free_result() //释放一个结果集合使用的内存。

mysql_get_client_info() //返回客户版本信息。

mysql_get_host_info() //返回一个描述连接的字符串。

mysql_get_proto_info() //返回连接使用的协议版本。

mysql_get_server_info() //返回服务器版本号。

mysql_info() //返回关于最近执行得查询的信息。

mysql_init() //获得或初始化一个MYSQL结构。

mysql_insert_id() //返回有前一个查询为一个AUTO_INCREMENT列生成的ID。

mysql_kill() //杀死一个给定的线程。

mysql_list_dbs() //返回匹配一个简单的正则表达式的数据库名。

mysql_list_fields() //返回匹配一个简单的正则表达式的列名。

mysql_list_processes() //返回当前服务器线程的一张表。

mysql_list_tables() //返回匹配一个简单的正则表达式的表名。

mysql_num_fields() //返回一个结果集合重的列的数量。

mysql_num_rows() //返回一个结果集合中的行的数量。

mysql_options() //设置对mysql_connect()的连接选项。
char value = 1;
int iOptions = mysql_options(&this->connObject, MYSQL_OPT_RECONNECT, &value); //解决8小时连接断开问题
if (iOptions != 0) {
    std::cout << "object mysql_options(MYSQL_OPT_RECONNECT) failed..." << std::endl;
}

mysql_ping() //检查对服务器的连接是否正在工作,必要时重新连接。

mysql_query() //执行指定为一个空结尾的字符串的SQL查询:
int mysql_query(MYSQL *mysql,const char *query) 返回值:查询成功返回0;查询出现错误返回非0

mysql_real_connect() //连接一个MySQL服务器。
if(mysql_real_connect(&conn, "localhost", "mysql_user", "passwd", "database_name", 0, NULL, CLIENT_FOUND_ROWS))
{
    std::cout << "connect success..." << std::endl;
}

mysql_real_query() //执行指定为带计数的字符串的SQL查询。

mysql_reload() //告诉服务器重装授权表。

mysql_row_seek() //搜索在结果集合中的行,使用从mysql_row_tell()返回的值。

mysql_row_tell() //返回行光标位置。

mysql_select_db() //连接一个数据库。

mysql_shutdown() //关掉数据库服务器。

mysql_stat() //返回作为字符串的服务器状态。

mysql_store_result() //检索一个完整的结果集合给客户。

mysql_thread_id() //返回当前线程的ID。

mysql_use_result() //初始化一个一行一行地结果集合的检索。

API接口解释持续更新...

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值