背景:MYSQL *m_mysql 定义了这么一个数据库连接句柄,在多个cpp里都有用到。
举例:
a.cpp:连接数据库
b.cpp:
int A_GetDataInfo(char *sqlQuery)
{
MYSQL_RES *res;
MYSQL_ROW row;
mysql_lock.Lock();
int i = mysql_real_query(m_mysql,sqlQuery,(unsigned int)strlen(sqlQuery));
mysql_lock.Unlock();
nFlag = 1;
res = mysql_use_result(m_mysql);
while (row = mysql_fetch_row(res))
{
int a = atoi(row[0]);
B_Excute(a);
}
mysql_free_result(res);
return 0;
}c.cppextern MYSQL *m_mysql;
void B_Excute(int a)
{
char sql[1024] = {'\0'};
sprintf_s(sql,"select %d from b",a);
int j = mysql_real_query(m_mysql,sqlQuery,(unsigned int)strlen(sqlQuery));
}当调试到c.cpp里时,j返回1,数据库提示错误是“命令以一个不适当的次序被执行”,应该怎么优化这样的逻辑呢?APICMySQL
举例:
a.cpp:连接数据库
b.cpp:
int A_GetDataInfo(char *sqlQuery)
{
MYSQL_RES *res;
MYSQL_ROW row;
mysql_lock.Lock();
int i = mysql_real_query(m_mysql,sqlQuery,(unsigned int)strlen(sqlQuery));
mysql_lock.Unlock();
nFlag = 1;
res = mysql_use_result(m_mysql);
while (row = mysql_fetch_row(res))
{
int a = atoi(row[0]);
B_Excute(a);
}
mysql_free_result(res);
return 0;
}c.cppextern MYSQL *m_mysql;
void B_Excute(int a)
{
char sql[1024] = {'\0'};
sprintf_s(sql,"select %d from b",a);
int j = mysql_real_query(m_mysql,sqlQuery,(unsigned int)strlen(sqlQuery));
}当调试到c.cpp里时,j返回1,数据库提示错误是“命令以一个不适当的次序被执行”,应该怎么优化这样的逻辑呢?APICMySQL
sprintf_s(sql,"select %d from b",a);
这里SQL是不是写错了。