• mysql-connetor-c 自动创建数据库、数据库表的命令


    1.首先连接MySQL默认的数据库mysql

    // 参数说明:
    // strIP: MySQL数据库的IP地址
    // nPort: MySQL数据库的端口号
    // strDBName: 要连接的数据库(mysql)
    // strUserName: 连接MySQL数据库的用户名
    // strPassword: 连接MySQL数据库的密码
    bool Connect( const std::string& strIP, int nPort, const std::string& strDBName, 
        const std::string& strUserName, const std::string& strPassword )
    {
        if ( nullptr == (m_hMysql = mysql_init(nullptr)) )
        {
            printf("mysql_init() failed!");
            return false;
        }
    
        if( nullptr == mysql_real_connect( m_hMysql, strIP.c_str(), strUserName.c_str(), 
            strPassword.c_str(), strDBName.c_str(), nPort, nullptr, 0) )
        {
            printf("mysql_real_connect() failed!");
            return false;
        }
    return true;
    }

    调用示例:

        bool ret = Connect("127.0.0.1", 3306, "mysql", "test", "test"); // 注意:"mysql"是MySQL自己的数据库
        if (!ret)
        {
            printf("connect mysql failed
    ");  
        }

    2.创建自己的数据库test

    bool CreateDatabase(const std::string& strSQL)
    {
        if (nullptr == m_hMysql || strSQL.empty())
        {
            return false;
        }
    
        if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
        {
            printf("mysql_query failed, sql:%s
    ", strSQL.c_str());
            return false;
        }
        return true;
    }

    调用示例:

    bool ret = CreateDatabase("CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET utf8 COLLATE utf8_general_ci");
    if (!ret)
    {
      printf("CreateDatabase failed
    ");  
    }

    3.切换到自己的数据库test

    bool ChangeDatabase(const std::string& strSQL)
    {
        if (nullptr == m_hMysql || strSQL.empty())
        {
            return false;
        }
    
        if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
        {
            printf("mysql_query failed, sql:%s
    ", strSQL.c_str());
            return false;
        }
        return true;
    }

    调用示例:

    bool ret = ChangeDatabase("USE test");
    if (!ret)
    {
      printf("ChangeDatabase failed
    ");  
    }

    4.创建数据库表t_data

    bool CreateTable(const std::string& strSQL)
    {
        if (nullptr == m_hMysql || strSQL.empty())
        {
            return false;
        }
    
        if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
        {
            printf("mysql_query failed, sql:%s
    ", strSQL.c_str());
            return false;
        }
        return true;
    }

    调用示例:

    bool ret = CreateTable("CREATE TABLE IF NOT EXISTS t_data ( Id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID', DATA VARCHAR(256) NOT NULL COMMENT '数据位置', PRIMARY KEY (Id) ) ENGINE=INNODB DEFAULT CHARSET=utf8");
    if (!ret)
    {
        printf("create table failed
    ");
    }
  • 相关阅读:
    【sqli-labs】 less23 Error based
    【sqli-labs】 less22 Cookie Injection- Error Based- Double Quotes
    【sqli-labs】 less21 Cookie Injection- Error Based- complex
    【sqli-labs】 less20 POST
    【sqli-labs】 less19 POST
    【sqli-labs】 less18 POST
    【sqli-labs】 less17 POST
    【sqli-labs】 less16 POST
    【sqli-labs】 less15 POST
    nginx.conf(centos7 1.14)主配置文件修改
  • 原文地址:https://www.cnblogs.com/qingtian224/p/9849896.html
Copyright © 2020-2023  润新知