关于MYSQL连接远程数据库插入数据时的问题

yxlovemoney 2018-01-16 04:14:27
之前写了这么个程序 放在本地进行数据的插入,关键的代码如下

这是连接数据库部分

void DBClass::OpenDB()
{

/////////////////MYSQL语句/////////////////////
myCon = mysql_init((MYSQL*)0);

if (NULL != mysql_real_connect(myCon, dbip, dbUser, dbPWD, dbname, 63346/*3306*/, NULL, 0))
{
cout<<"连接成功"<<endl;
//system("PAUSE");
}
else
{
cout<<"连接失败"<<endl;
system("PAUSE");
}
//return;
}



然后是插入的相关语句

void DBClass::InsertDB(string strSQL)
{
////////////////MYSQL语句//////////////////
//strSQL = "insert into db_test(a,b) values('fuc1', 'you1'), ('fuc2', 'you2')";
if (0 == mysql_query(myCon, strSQL.c_str()))
{
cout << "插入成功" << endl;
}
else
{
cout << "插入失败" << endl;
mysql_close(myCon);
system("PAUSE");
//return -1;
}
}


然后通过下面一些拼接语句把内容给插入,

strSQL += " ('" + dm + "', '" + updatetime+ "', " + InstrumentData[0] + ", " + InstrumentData[1] + ", "
+ InstrumentData[2] + ", " + InstrumentData[3] + ", " + InstrumentData[4]+ ", " + InstrumentData[5] + ", "
+ InstrumentData[6] + ", " + InstrumentData[7] + ", " + InstrumentData[8] + ", " + strTimeStamp + ", "
+ InstrumentData[9] + ", " + InstrumentData[10] + ", " + InstrumentData[11] + "," + InstrumentData[12] + ","
+ InstrumentData[13] + "," + InstrumentData[14] + "," + InstrumentData[15] + "," + InstrumentData[16] + ","
+ InstrumentData[17] + ")";
//+ ", " + pDepthMarketDat a.HighestPrice + ", " + pDepthMarketData.LowestPrice + ", " + nTime + ", '" + item.LastWriteTime + "'";

//strSQL += " select '" + dm + "'";
bFirst = false;
++nCount;

if (nCount == 1) // 突然想起这样插入,可能会导致数据丢失,但插一条效率可能会低,
{
/* 计数器,标志位复位 */
bFirst = true;
nCount = 0;
/* 插入数据库 */
dbController->InsertDB(strSQL); // 测试用暂注释这行
/* 重置字符串 */
strSQL = "insert into tstockinfodetail_two(StockID, LastWriteTime, LastPrice, BidPrice1, BidVol1, AskPrice1, AskVol1, Volume, HighestPrice, LowestPrice,OpenPrice, TimeStamp,PreSettlementPrice,UpperLimitPrice,LowerLimitPrice,OpenInterest,PreOpenInterest,SettlementPrice,PreClosePrice,ClosePrice,AveragePrice) values";
}



在本地执行程序没有问题,都能正常插入, 但当我现在改成向远程服务器插入时就会 跑到插入失败的语句中,总之就是无法插入数据,


就是下面这样, 程序运行的时候,已经提示连接成功,但到上面的插入语句时就是无法插入,这是怎么回事?是哪方面出现的问题,我已经通过 Navicat for MySQL 向远程数据表插入了数据,但通过程序就无法插入,请教原因。

char dbUser[30] = "root";
char dbPWD[30] = "这里密码就不写出来了"; //"123456";//"root";//"root"; //
char dbip[50]="gz-cdb-9tqf5do7.sql.tencentcdb.com";//"localhost";
char dbname[50]="futures";//"db_websocket";
char tablename[50]="ttesttable";
char *query=NULL;

myCon = mysql_init((MYSQL*)0);

if (NULL != mysql_real_connect(myCon, dbip, dbUser, dbPWD, dbname, 63346/*3306*/, NULL, 0))
{
cout<<"连接成功"<<endl;
//system("PAUSE");
}
else
{
cout<<"连接失败"<<endl;
system("PAUSE");
}

...全文
354 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻夢之葉 2018-01-16
  • 打赏
  • 举报
回复
看懂了腾讯云,这是小程序数据后台么

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧