bool MySQLLayer::connectDB(const std::string & host, const std::string & user, const std::string& password, const std::string & database) { mysql_commit(mysql_); mysql_close(mysql_); mysql_ = new MYSQL; mysql_init(mysql_); if (!mysql_real_connect(mysql_,host.c_str(),user.c_str(),password.c_str(),database.c_str(),3306,NULL,0)) { std::cerr << "Failed to connect to database: Error: " << mysql_error(mysql_) << std::endl; errorLog_ << "Failed to connect to database: Error: " << mysql_error(mysql_) << std::endl; return false; } mysql_commit(mysql_); return true; }
int load_tables(lua_State *L) { MYSQL_RES *res; MYSQL_ROW row; if ( mysql_real_query(g_mysqlconn, "begin", 5) != 0 ) { return luaL_error(L, "Failed to mysql_real_query, error(%s)", mysql_error(g_mysqlconn)); } // load tb_activity begin if ( mysql_real_query(g_mysqlconn, "select * from tb_activity", 25) ) { return luaL_error(L, "Failed to mysql_real_query, error(%s)", mysql_error(g_mysqlconn)); } res = mysql_use_result(g_mysqlconn); while ( (row = mysql_fetch_row(res)) ) { tb_activity_reset(L); tb_activity_record &record = g_dbrecord._tb_activity_record; record.activity_id = atoi(row[0]); size_t len = strlen(row[1]); // todo support binary memcpy(record.activity_name, row[1], MIN(len, sizeof(record.activity_name)-2)); record.activity_name[sizeof(record.activity_name) - 1] = 0; tb_activity_insert_mdb(L); } // load tb_activity end if ( mysql_commit(g_mysqlconn) != 0 ) { return luaL_error(L, "Failed to mysql_commit, error(%s)", mysql_error(g_mysqlconn)); } return 0; }
static int test_select_direct(MYSQL *mysql) { int rc; MYSQL_RES *result; rc= mysql_autocommit(mysql, TRUE); check_mysql_rc(rc, mysql); rc= mysql_query(mysql, "DROP TABLE IF EXISTS test_select"); check_mysql_rc(rc, mysql); rc= mysql_query(mysql, "CREATE TABLE test_select(id int, id1 tinyint, " " id2 float, " " id3 double, " " name varchar(50))"); check_mysql_rc(rc, mysql); /* insert a row and commit the transaction */ rc= mysql_query(mysql, "INSERT INTO test_select VALUES(10, 5, 2.3, 4.5, 'venu')"); check_mysql_rc(rc, mysql); rc= mysql_commit(mysql); check_mysql_rc(rc, mysql); rc= mysql_query(mysql, "SELECT * FROM test_select"); check_mysql_rc(rc, mysql); /* get the result */ result= mysql_store_result(mysql); FAIL_IF(!result, "Invalid result set"); mysql_free_result(result); return OK; }
void DBConnection::CommitTransaction() { if (!IsConnected()) { return; } mysql_commit(m_pMysqlConn); mysql_autocommit(m_pMysqlConn, 1); }
static my_bool thread_query(const char *query) { MYSQL *l_mysql; my_bool error; error= 0; if (!opt_silent) fprintf(stdout, "\n in thread_query(%s)", query); if (!(l_mysql= mysql_client_init(NULL))) { myerror("mysql_client_init() failed"); return 1; } if (!(mysql_real_connect(l_mysql, opt_host, opt_user, opt_password, current_db, opt_port, opt_unix_socket, 0))) { myerror("connection failed"); error= 1; goto end; } l_mysql->reconnect= 1; if (mysql_query(l_mysql, query)) { fprintf(stderr, "Query failed (%s)\n", mysql_error(l_mysql)); error= 1; goto end; } mysql_commit(l_mysql); end: mysql_close(l_mysql); return error; }
int ExecuteModifyEx(MYSQL *pMySql, char **sSqlArray, int nSize) { if (!sSqlArray || !pMySql || nSize <= 0) { ErrorInfor("ExecuteModifyEx", ERROR_ARGNULL); return 0; } for (int i = 0; i < nSize; i++) { if (mysql_query(pMySql, sSqlArray[i]) != 0) { ErrorInfor("ExecuteModifyEx-1", (char *)mysql_error(pMySql)); if (mysql_rollback(pMySql) != 0) { ErrorInfor("ExecuteModifyEx-2", (char *)mysql_error(pMySql)); } return 0; } } if (mysql_commit(pMySql) != 0) { ErrorInfor("ExecuteModifyEx-3", (char *)mysql_error(pMySql)); return 0; } return 1; }
static NEOERR* mysql_mdb_commit(mdb_conn* conn) { if (mysql_commit(CONN(conn)->mysql) != 0) return nerr_raise(NERR_DB, mysql_error(CONN(conn)->mysql)); return STATUS_OK; }
void CMySQLConnection::commit() throw (CDBException) { MYSQL* mysql_handler = static_cast<MYSQL*>(mysql_handler); if (mysql_commit(mysql_handler) != 0) THROW_DB_EXCEPTION(NULL, mysql_error(mysql_handler), mysql_errno(mysql_handler)); }
void MySqlDataProvider::commitTransaction() throw (std::runtime_error) { if (!mIsConnected) { const std::string error = "Trying to commit a transaction while not " "connected to the database!"; LOG_ERROR(error); throw std::runtime_error(error); } if (!inTransaction()) { const std::string error = "Trying to commit a transaction while no " "one is open!"; LOG_ERROR(error); throw std::runtime_error(error); } if (mysql_commit(mDb) != 0) { LOG_ERROR("MySqlDataProvider::commitTransaction: " << mysql_error(mDb)); throw DbSqlQueryExecFailure(mysql_error(mDb)); } if (mysql_autocommit(mDb, AUTOCOMMIT_ON)) { const std::string error = "Error while trying to enable autocommit"; LOG_ERROR(error); throw std::runtime_error(error); } mInTransaction = false; LOG_DEBUG("SQL: commited transaction"); }
/* commit() */ static VALUE commit(VALUE obj) { MYSQL* m = GetHandler(obj); if (mysql_commit(m) != 0) mysql_raise(m); return obj; }
uint32_t maintain_plant(i_mysql_iface *p_mysql_conn, c_memcached *p_memcached, uint32_t user_id, uint32_t msg_type, char *p_request_body, uint32_t request_len) { if (check_val_len(msg_type, request_len, sizeof(db_msg_maintain_req_t)) != 0) { return ERR_MSG_LEN; } db_msg_maintain_req_t *p_req = (db_msg_maintain_req_t*)p_request_body; MYSQL *p_conn = p_mysql_conn->get_conn(); if (NULL == p_conn) { KCRIT_LOG(user_id, "get mysql conn failed."); return ERR_SQL_ERR; } if (mysql_autocommit(p_conn, false) != 0) { KCRIT_LOG(user_id, "close mysql_autocommit failed."); return ERR_SQL_ERR; } //sprintf(g_sql_str,"UPDATE db_monster_%d.t_plant_%d SET growth = growth + %u, last_growth_value = growth + %u, last_growth_time = %u, maintain = %u, maintain_count = %u, last_reward_id = %u where user_id = %u and hole_id = %u;", DB_ID(user_id), TABLE_ID(user_id), p_req->add_growth, p_req->add_growth, p_req->add_growth_time, p_req->new_maintain_type, p_req->maintain_count, p_req->last_reward_id, user_id, p_req->hole_id); sprintf(g_sql_str,"UPDATE db_monster_%d.t_plant_%d SET growth = growth + %u, last_growth_value = growth, last_growth_time = %u, maintain = %u, maintain_count = %u, last_reward_id = %u where user_id = %u and hole_id = %u;", DB_ID(user_id), TABLE_ID(user_id), p_req->add_growth, p_req->add_growth_time, p_req->new_maintain_type, p_req->maintain_count, p_req->last_reward_id, user_id, p_req->hole_id); KINFO_LOG(user_id, "%s", g_sql_str); if (p_mysql_conn->execsql(g_sql_str) < 0) { KCRIT_LOG(user_id, "sql exec failed(%s).", p_mysql_conn->get_last_errstr()); mysql_rollback(p_conn); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } sprintf(g_sql_str, "INSERT INTO db_monster_%d.t_plant_reward_%d(user_id, hole_id, reward_id, reward_happy, reward_exp, reward_coins) VALUES(%u, %u, %u, %u, %u, %u) ON DUPLICATE KEY UPDATE reward_happy = %u, reward_exp = %u, reward_coins = %u;", DB_ID(user_id), TABLE_ID(user_id), user_id, p_req->hole_id, p_req->last_reward_id, p_req->reward_happy, p_req->reward_exp, p_req->reward_coins, p_req->reward_happy, p_req->reward_exp, p_req->reward_coins); KINFO_LOG(user_id, "%s", g_sql_str); if (p_mysql_conn->execsql(g_sql_str) < 0) { KCRIT_LOG(user_id, "sql exec failed(%s).", p_mysql_conn->get_last_errstr()); mysql_rollback(p_conn); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } // 结束事务 if (mysql_commit(p_conn) != 0) { KCRIT_LOG(user_id, "mysql_commit() failed."); mysql_rollback(p_conn); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } mysql_autocommit(p_conn, true); return 0; }
uint32_t get_open_act_reward(i_mysql_iface *p_mysql_conn, c_memcached *p_memcached, uint32_t user_id, uint32_t msg_type, char *p_request_body, uint32_t request_len) { if(check_val_len(msg_type, request_len, sizeof(db_msg_get_open_reward_t))) { return ERR_MSG_LEN; } db_msg_get_open_reward_t *p_body = (db_msg_get_open_reward_t*)p_request_body; sprintf(g_sql_str, "update db_monster_%d.t_activity_%d set flag = 1 where user_id = %u and activity_id = %u and reward_id = %u;", DB_ID(user_id), TABLE_ID(user_id), user_id, p_body->act_id, p_body->reward_id); KINFO_LOG(user_id, "get open reward:%s", g_sql_str); MYSQL *p_conn = p_mysql_conn->get_conn(); if (NULL == p_conn) { KCRIT_LOG(user_id, "get mysql conn failed."); return ERR_SQL_ERR; } if (mysql_autocommit(p_conn, false) != 0) { KCRIT_LOG(user_id, "close mysql_autocommit failed."); return ERR_SQL_ERR; } if (p_mysql_conn->execsql(g_sql_str) < 0) { KCRIT_LOG(user_id, "[msg:%u]sql exec failed(%s).", msg_type, p_mysql_conn->get_last_errstr()); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } sprintf(g_sql_str, "INSERT INTO db_monster_%d.t_stuff_%d(user_id, stuff_id, stuff_num) values(%u, %u, %u) ON DUPLICATE KEY UPDATE stuff_num = stuff_num + %u;", DB_ID(user_id), TABLE_ID(user_id), user_id, p_body->reward_id, p_body->reward_num, p_body->reward_num); KINFO_LOG(user_id, "open act_reward:%s", g_sql_str); if (p_mysql_conn->execsql(g_sql_str) < 0) { KCRIT_LOG(user_id, "[msg:%u]sql exec failed(%s).", msg_type, p_mysql_conn->get_last_errstr()); mysql_rollback(p_conn); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } // 结束事务 if (mysql_commit(p_conn) != 0) { KCRIT_LOG(user_id, "mysql_commit() failed."); mysql_rollback(p_conn); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } mysql_autocommit(p_conn, true); g_pack.pack(p_request_body, request_len); return 0; }
void mydb::commit() { tu_autolock locker(s_mysql_plugin_mutex); if (m_trace) log_msg("commit\n"); mysql_commit(m_db); }
void MysqlDatabase::commit_transaction() { if (active) { mysql_commit(conn); mysql_autocommit(conn, true); CLog::Log(LOGDEBUG,"Mysql commit transaction"); _in_transaction = false; } }
uint32_t add_plant(i_mysql_iface *p_mysql_conn, c_memcached *p_memcached, uint32_t user_id, uint32_t msg_type, char *p_request_body, uint32_t request_len) { if (check_val_len(msg_type, request_len, sizeof(db_msg_add_plant_req_t)) != 0) { return ERR_MSG_LEN; } db_msg_add_plant_req_t *p_req = (db_msg_add_plant_req_t *)p_request_body; KINFO_LOG(user_id, "[add plant]plant id:%u, hole id:%u, color:%u", p_req->plant_id, p_req->hole_id, p_req->color); snprintf(g_sql_str, sizeof(g_sql_str), "UPDATE db_monster_%d.t_plant_%d set plant_id = %u, color = %u, last_extra_growth_time = %u, last_growth_time= %u, maintain = %u, next_maintain_time = %u where user_id = %u and hole_id = %u;", DB_ID(user_id), TABLE_ID(user_id), p_req->plant_id, p_req->color, p_req->last_extra_growth_time, p_req->last_grown_time, p_req->maintain, p_req->maintain_time, user_id, p_req->hole_id); MYSQL *p_conn = p_mysql_conn->get_conn(); if (NULL == p_conn) { KCRIT_LOG(user_id, "get mysql conn failed."); return ERR_SQL_ERR; } if (mysql_autocommit(p_conn, false) != 0) { KCRIT_LOG(user_id, "close mysql_autocommit failed."); return ERR_SQL_ERR; } if (p_mysql_conn->execsql(g_sql_str) < 0) { KCRIT_LOG(user_id, "sql exec failed(%s).", p_mysql_conn->get_last_errstr()); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } //将种子数量减1 snprintf(g_sql_str, sizeof(g_sql_str), "UPDATE db_monster_%d.t_stuff_%d SET stuff_num = stuff_num - 1 WHERE user_id = %u AND stuff_id = %u and stuff_num > 0", DB_ID(user_id), TABLE_ID(user_id), user_id, p_req->plant_id); KINFO_LOG(user_id, "desc seed:%s", g_sql_str); if (p_mysql_conn->execsql(g_sql_str) < 0) { KCRIT_LOG(user_id, "sql exec failed(%s).", p_mysql_conn->get_last_errstr()); mysql_rollback(p_conn); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } // 结束事务 if (mysql_commit(p_conn) != 0) { KCRIT_LOG(user_id, "mysql_commit() failed."); mysql_rollback(p_conn); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } mysql_autocommit(p_conn, true); return 0; }
bool Sql_TransactionCommit(Sql_t* self) { if( self && mysql_commit(&self->handle) == 0) { return true; } ShowFatalError("Sql_TransactionCommit: SQL_ERROR\n"); return false; }
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ void DatabaseTransaction::commit() { if( mysql_commit(this->m_pConnection.get()) ) { throw std::exception("Zen::ZMySQL::DatabaseTransaction::commit() : Error committing transaction."); } this->m_isCommitted = true; this->m_isActive = false; }
/* {{{ mysql_handle_commit */ static int mysql_handle_commit(pdo_dbh_t *dbh) { PDO_DBG_ENTER("mysql_handle_commit"); PDO_DBG_INF_FMT("dbh=%p", dbh); #if MYSQL_VERSION_ID >= 40100 || defined(PDO_USE_MYSQLND) PDO_DBG_RETURN(0 <= mysql_commit(((pdo_mysql_db_handle *)dbh->driver_data)->server)); #else PDO_DBG_RETURN(0 <= mysql_handle_doer(dbh, ZEND_STRL("COMMIT"))); #endif }
int wb_dbms_txn::commit() { int rc; rc = mysql_commit(m_env->con()); if (rc) printf("wb_dbms::commit, rc %d\n", rc); return rc; }
static int conn_commit(lua_State* L) { Connection* conn = check_conn(L); luaL_argcheck(L, conn && !conn->closed, 1, "invalid Connection object"); if (mysql_commit(&conn->my_conn) != 0) { return luaL_error(L, "commit failed, %s\n", mysql_error(&conn->my_conn)); } return 0; }
bool CDatabaseConnectionMySql::DoCommit( const String & name ) { bool result = mysql_commit( _connection ) == 0; if ( result ) { result = mysql_autocommit( _connection, true ) == 0; } return result; }
bool CDBSrcMySql::Commit(void) { if (m_pDB == NULL) return false; if( mysql_commit(m_pDB) == 0) { mysql_autocommit(m_pDB, 1); return true; } else return false; }
bool Database::commit() { if (mysql_commit(m_handle) != 0) { std::cout << "[Error - mysql_commit] Message: " << mysql_error(m_handle) << std::endl; database_lock.unlock(); return false; } database_lock.unlock(); return true; }
int do_mysql_commit(const simple_list_node *node, void *data) { MYSQL *con = (MYSQL *)node->data; if (mysql_commit(con) != 0) { write_log(7, "commit;"); return 1; } write_log(2, con->host, (char *)data); return 0; }
/* * success = connection:commit() */ static int connection_commit(lua_State *L) { connection_t *conn = (connection_t *)luaL_checkudata(L, 1, DBD_MYSQL_CONNECTION); int err = 0; if (conn->mysql) { err = mysql_commit(conn->mysql); } lua_pushboolean(L, !err); return 1; }
uint32_t prize_lottery(i_mysql_iface *p_mysql_conn, c_memcached *p_memcached, uint32_t user_id, uint32_t msg_type, char *p_request_body, uint32_t request_len) { if (check_val_len(msg_type, request_len, sizeof(db_request_prize_lottery_t)) != 0) { return ERR_MSG_LEN; } db_request_prize_lottery_t *p_req = (db_request_prize_lottery_t *)p_request_body; MYSQL_ROW row = NULL; MYSQL *p_conn = p_mysql_conn->get_conn(); if(p_conn == NULL) { KCRIT_LOG(user_id, "get mysql conn failed."); return ERR_SQL_ERR; } if(mysql_autocommit(p_conn, false) != 0) { KCRIT_LOG(user_id, "close mysql_autocommit failed."); return ERR_SQL_ERR; } sprintf(g_sql_str, "UPDATE db_monster_%d.t_stuff_%d SET stuff_num = stuff_num-%u WHERE user_id= %u AND stuff_id=%u;", DB_ID(user_id), TABLE_ID(user_id), p_req->cost, user_id, p_req->stuff_a_id); if(p_mysql_conn->execsql(g_sql_str) < 0) { KCRIT_LOG(user_id, "sql exec failed(%s).", p_mysql_conn->get_last_errstr()); mysql_rollback(p_conn); mysql_autocommit(p_conn,true); return ERR_SQL_ERR; } sprintf(g_sql_str, "INSERT INTO db_monster_%d.t_stuff_%d(user_id, stuff_id, stuff_num) VALUES(%u, %u, 1) ON DUPLICATE KEY UPDATE stuff_num = stuff_num+1;", DB_ID(user_id), TABLE_ID(user_id), user_id, p_req->stuff_b_id); if(p_mysql_conn->execsql(g_sql_str) < 0) { KCRIT_LOG(user_id, "sql exec failed(%s).", p_mysql_conn->get_last_errstr()); mysql_rollback(p_conn); mysql_autocommit(p_conn,true); return ERR_SQL_ERR; } if (mysql_commit(p_conn) != 0) { KCRIT_LOG(user_id, "mysql_commit() failed."); mysql_rollback(p_conn); mysql_autocommit(p_conn, true); return ERR_SQL_ERR; } mysql_autocommit(p_conn, true); g_pack.pack(p_request_body, request_len); return 0; }
bool COperMysql::Commit() { if(m_Commit) { return TRUE; } if(mysql_commit(m_PtrCon) == 0) { return TRUE; } return FALSE; }
bool DatabaseMySQL::commit() { if(!m_connected) return false; if(mysql_commit(&m_handle)) { std::clog << "mysql_commit() - MYSQL ERROR: " << mysql_error(&m_handle) << " (" << mysql_errno(&m_handle) << ")" << std::endl; return false; } return true; }
bool Mysql::commit() { my_bool result; result = mysql_commit(this->db); this->endTransaction(); if ( result != 0 ) { KY_LOG_ERROR("mysql commit transaction fail"); return false; } return true; }
//事务提交 bool CMysqlStore::Commit() { if(m_autocommit) { return true; } if(mysql_commit(m_connptr) == 0) { return true; } return false; }