VC2010 MySql 数据库 mysql_real_query 失败,该如何处理

VC2010 MySql 数据库 mysql_real_query 失败
已连接成功,执行下面代码出现失败:
并且尝试过CStringA、CString(转为Unicode char*、数组)等各种方法
输出这句失败的SQL,去MySql Front 中执行成功没问题。
而且我在VC6中执行是没问题的(感觉不太像是字符串的问题,因为试过各种字符串变量和转换,有些转换都是在Unicode项目中实践和使用过的)
请教各位高手



// 处理影响SQL语句的字符串
m_strOldTitle.Replace(L"'", L"\\'");
m_strOldText.Replace(L"'", L"\\'");

CStringA strMySql("insert into text(标题,日志) VALUES('");
strMySql += m_strOldTitle;
strMySql += "', '";
strMySql += m_strOldText;
strMySql += "')";

if( mysql_real_query(&mysql,strMySql, strMySql.GetLength()) != 0 )
// if( mysql_real_query(&mysql,(char*)(LPCTSTR)strMySql, (UINT)strMySql.GetLength()) != 0 )
{
CString strMessage(L"日志保存到MySql数据库失败:");
strMessage += strMySql;
m_ctrlEditLog.AddLog(strMessage);
}




我是用如下语句进行连接:


mysql_init (&mysql);
if( !mysql_real_connect(&mysql, szHost, szUser, szPassword, szDatabase, _ttoi(strPort), NULL, 0) )
{
// mydb为你所创建的数据库,3306为端口号,可自行设定
AfxMessageBox(L"MySql 数据库连接失败!");

return FALSE;
}
else
{
m_ctrlEditLog.AddLog(L"√ MySql 数据库 连接成功");

// 标记为TRUE
m_bIsStarMySql = TRUE;
}

return TRUE;



提示连接成功,没问题

.
MySQL 数据库 VS2010

------解决方案--------------------
1 设个断点看 strMySql 是多少?
2 看 mysql_real_query 返回值是多少
------解决方案--------------------
CStringA strMySql("insert into text(标题,日志) VALUES('");
        strMySql += m_strOldTitle;
        strMySql += "', '";
        strMySql += m_strOldText;
        strMySql += "')";
这一段可以用CStringA.Format来优化一下

在mysql_real_query之前写执行mysql_real_query("set name gbk");设置字符集

遇到错误时,mysql_real_query函数最后一个参数是用来保存错误信息的,打印这个字符串看看是什么错误