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; }
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; }
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; }
//执行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; }
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; }