有时候需要判断数据库中是否存在某个表,为此可以先把所有的table名称取出来。本文的小代码就是实现这个功能。
bool GetTableNames(MYSQL *pConn, std::list<std::string> &names)
{
MYSQL_RES *result = NULL;
MYSQL_ROW row;
if (mysql_query(pConn, "SHOW TABLES")) {
printf("query failed: %s\n", mysql_error(pConn));
return false;
}
result = mysql_store_result(pConn); // number of field = 1
while (row = mysql_fetch_row(result)) {
names.push_back(std::string(row[0]));
}
mysql_free_result(result);
return true;
}