怎么用C++向MYSQL插入UNICODE字符串

如何用C++向MYSQL插入UNICODE字符串?
官方给的C API函数是
int mysql_real_query(MYSQL *mysql, const char *query, unsigned long length)

而我想要的是类似这样的函数
int mysql_real_query(MYSQL *mysql, const wchar_t *query, unsigned long length)


------------------------------------------------------------------------------------------------------------------------


假如我要插入这样的字符串"ص"
对于
INSERT INTO temp (tmp1) VALUES (tmp2)

我试过2种方法 
一种是直接将"ص"字符串赋值给char*类型的tmp2中,结果提示
INSERT INTO temp (tmp1) VALUES (?) 出错

第二种方法是用WideCharToMultiByte将"ص"字符串转换成2倍长度的char*, 然后再将其赋值给tmp2,结果错误提示也是INSERT INTO temp (tmp1) VALUES (?) 出错
------------------------------------------------------------------------------------------------------------------------


请问我应该怎么做才能实现类似如下函数的这样的功能?
int mysql_real_query(MYSQL *mysql, const wchar_t *query, unsigned long length)

谢谢!
------解决思路----------------------
两个方法:
1,转utf-8再存入.
2,建表字段加上binary,然后sql语句也使用binary。
------解决思路----------------------
w_char*  转成 char* 再存啊



//Unicode编码转为多字节编码  
bool UnicodeToMB(vector<char>& pmb, const wchar_t* pun, int32 uLen)  
{  
    // convert an widechar string to Multibyte   
    int32 MBLen = WideCharToMultiByte(CP_ACP, 0, pun, uLen, NULL, 0, NULL, NULL);  
    if (MBLen <=0)  
    {  
        return false;  
    }  
    pmb.resize(MBLen);  
    int nRtn = WideCharToMultiByte(CP_ACP, 0, pun, uLen, &*pmb.begin(), MBLen, NULL, NULL);  
  
    if(nRtn != MBLen)  
    {  
        pmb.clear();  
        return false;  
    }  
    return true;  
}