mirror of
https://github.com/alicealys/t5-gsc-utils.git
synced 2026-07-28 10:40:36 +00:00
mysql fix
This commit is contained in:
+9
-10
@@ -223,7 +223,7 @@ namespace mysql
|
|||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
printf("%s\n", e.what());
|
printf("^1MySQL ERROR: %s\n", e.what());
|
||||||
task->completed = true;
|
task->completed = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -285,10 +285,10 @@ namespace mysql
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void bind_statement_args(MYSQL_BIND* binds, std::size_t& bind_count, const T& args)
|
MYSQL_BIND* bind_statement_args(const T& args, std::size_t& bind_count)
|
||||||
{
|
{
|
||||||
bind_count = args.size();
|
bind_count = args.size();
|
||||||
binds = utils::memory::allocate_array<MYSQL_BIND>(bind_count);
|
const auto binds = utils::memory::allocate_array<MYSQL_BIND>(bind_count);
|
||||||
|
|
||||||
for (auto i = 0u; i < args.size(); i++)
|
for (auto i = 0u; i < args.size(); i++)
|
||||||
{
|
{
|
||||||
@@ -327,6 +327,8 @@ namespace mysql
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return binds;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cleanup_connections()
|
void cleanup_connections()
|
||||||
@@ -495,11 +497,11 @@ namespace mysql
|
|||||||
{
|
{
|
||||||
if (values.size() > 0 && values[0].is<scripting::array>())
|
if (values.size() > 0 && values[0].is<scripting::array>())
|
||||||
{
|
{
|
||||||
bind_statement_args(binds, bind_count, values[0].as<scripting::array>());
|
binds = bind_statement_args(values[0].as<scripting::array>(), bind_count);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bind_statement_args(binds, bind_count, values);
|
binds = bind_statement_args(values, bind_count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
@@ -510,10 +512,7 @@ namespace mysql
|
|||||||
|
|
||||||
return create_mysql_query([=](database_t& db)
|
return create_mysql_query([=](database_t& db)
|
||||||
{
|
{
|
||||||
const auto _0 = gsl::finally([&]
|
const auto _0 = gsl::finally(free_binds);
|
||||||
{
|
|
||||||
free_binds();
|
|
||||||
});
|
|
||||||
|
|
||||||
mysql_result_t result{};
|
mysql_result_t result{};
|
||||||
|
|
||||||
@@ -521,7 +520,7 @@ namespace mysql
|
|||||||
const auto stmt = mysql_stmt_init(handle);
|
const auto stmt = mysql_stmt_init(handle);
|
||||||
|
|
||||||
if (mysql_stmt_prepare(stmt, query.data(), query.size()) != 0 ||
|
if (mysql_stmt_prepare(stmt, query.data(), query.size()) != 0 ||
|
||||||
(binds != nullptr && mysql_stmt_bind_param(stmt, binds)) != 0 ||
|
(binds != nullptr && mysql_stmt_bind_param(stmt, binds) != 0) ||
|
||||||
mysql_stmt_execute(stmt) != 0)
|
mysql_stmt_execute(stmt) != 0)
|
||||||
{
|
{
|
||||||
result.error = mysql_stmt_error(stmt);
|
result.error = mysql_stmt_error(stmt);
|
||||||
|
|||||||
Reference in New Issue
Block a user