连接数据库没有问题,就是向数据库插入数据时报错:
void CtestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
MYSQL m_sqlCon;
//初始化数据库对象
mysql_init(&m_sqlCon);
if (!mysql_real_connect(&m_sqlCon, "xxxx", "root",
"xxxx", "test", 3306, NULL, 0))
{
AfxMessageBox(_T("数据库连接失败!"));
return;
}
else//连接成功则继续访问数据库,之后的相关操作代码基本是放在这里面的
{
AfxMessageBox(_T("数据库连接成功!"));
//UpdateData(true);
CString insert;
insert.Format(TEXT("insert into modulefile(id,module_sn,file_name) values (null,'123','456')"));
// 执行 sql 语句。
if (mysql_query(&m_sqlCon, insert) == 0)
{
AfxMessageBox(_T("插入数据成功!"));
}
else {
AfxMessageBox(_T("插入数据失败!"));
}
}
UpdateData(false);
mysql_close(&m_sqlCon);//关闭Mysql连接
}
UpdateData(true); 这一句报错:0x00007FF7478C4FAC 处有未经处理的异常(在 test.exe 中):堆栈 Cookie 检测代码检测到基于堆栈的缓冲区溢出。
把这句注释掉以后虽然仍然报错但是数据库中有数据插入了。究竟是为什么不能写这一句,应该如何获取控件里输入的值呢