mysql-connetor-c 自動建立數據庫、數據庫表的命令

1.首先鏈接MySQL默認的數據庫mysqlmysql

// 參數說明:
// 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;
}

調用示例:sql

    bool ret = Connect("127.0.0.1", 3306, "mysql", "test", "test"); // 注意:"mysql"是MySQL本身的數據庫
    if (!ret)
    {
        printf("connect mysql failed\n");  
    }

 

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\n", strSQL.c_str());
        return false;
    }
    return true;
}

調用示例:spa

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

 

3.切換到本身的數據庫testcode

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\n", strSQL.c_str());
        return false;
    }
    return true;
}

調用示例:blog

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

 

4.建立數據庫表t_dataci

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\n", strSQL.c_str());
        return false;
    }
    return true;
}

調用示例:string

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\n");
}
相關文章
相關標籤/搜索