Ejemplo n.º 1
0
bool db_mysql::tbl_exists(const char* tbl_name)
{
	if (conn_ == NULL)
	{
		logger_error("db(%s) not opened yet", dbname_);
		return false;
	}

	char sql[256];

	safe_snprintf(sql, sizeof(sql), "show tables like '%s'", tbl_name);
	if (sane_mysql_query(sql) == false)
		return false;
	MYSQL_RES *my_res = __mysql_store_result(conn_);
	if (my_res == NULL)
	{
		if (__mysql_errno(conn_) != 0)
		{
			logger_error("db(%s), sql(%s) error(%s)",
				dbname_, sql, __mysql_error(conn_));
			close();
		}
		return false;
	}

	bool ret;
	if (__mysql_num_rows(my_res) > 0)
		ret = true;
	else
		ret = false;
	__mysql_free_result(my_res);
	return ret;
}
Ejemplo n.º 2
0
bool db_mysql::sql_select(const char* sql)
{
	if (sane_mysql_query(sql) == false)
		return false;
	MYSQL_RES *my_res = __mysql_store_result(conn_);
	if (my_res == NULL)
	{
		if (__mysql_errno(conn_) != 0)
		{
			logger_error("db(%s), sql(%s) error(%s)",
				dbname_, sql, __mysql_error(conn_));
			close();
		}
		return false;
	}

	my_ulonglong nrow = __mysql_num_rows(my_res);
	if (nrow <= 0)
	{
		__mysql_free_result(my_res);
		result_ = NULL;
		return true;
	}

	result_ = NEW db_mysql_rows(my_res);
	return true;
}
Ejemplo n.º 3
0
bool db_mysql::sql_update(const char* sql)
{
	if (sane_mysql_query(sql) == false)
		return false;
	int ret = (int) __mysql_affected_rows(conn_);
	if (ret == -1)
		return false;
	return true;
}
Ejemplo n.º 4
0
//执行sql语句
bool DbMysql::sql_select(const char* sql)
{
	if(sane_mysql_query(sql) == false)
		return false;
	my_res_ = mysql_store_result(conn_);
	if(my_res_ == nullptr)
		return false;
	my_ulonglong nrow = mysql_num_rows(my_res_);
	if (nrow <= 0)
	{
		mysql_free_result(my_res_);
		my_res_ = nullptr;
		if(result_){
			delete result_;
			result_ = nullptr;
		}
		return true;
	}
	result_ = new DbRows(my_res_);
	return true;
}
Ejemplo n.º 5
0
bool db_mysql::sql_select(const char* sql, db_rows* result /* = NULL */)
{
	// 优先调用基类方法释放上次的查询结果
	free_result();

	if (sane_mysql_query(sql) == false)
		return false;
	MYSQL_RES *my_res = __mysql_store_result(conn_);
	if (my_res == NULL)
	{
		if (__mysql_errno(conn_) != 0)
		{
			logger_error("db(%s), sql(%s) error(%s)",
				dbname_, sql, __mysql_error(conn_));
			close();
		}
		return false;
	}

	my_ulonglong nrow = __mysql_num_rows(my_res);
	if (nrow <= 0)
	{
		__mysql_free_result(my_res);
		result_ = NULL;
		return true;
	}

	if (result != NULL)
		mysql_rows_save(my_res, *result);
	else
	{
		result_ = NEW db_rows();
		mysql_rows_save(my_res, *result_);
	}

	return true;
}