J'ai la requête suivante qui est stockée dans le tampon, puis est exécutée en utilisant ma propre conn.executeQuery().MySQL et varargs
char buffer[QUERY_MAX];
snprintf(buffer, QUERY_MAX, "SELECT * FROM players WHERE player_id = %d", 1);
conn.executeQuery(buffer);
Bien que cela fonctionne très bien, je me demande si elle peut être simplifiée comme quelque chose de similaire à ...
conn.executeQuery("SELECT * FROM players WHERE player_id = "%d", 1);
Ma fonction:
bool SQLConnection::executeQuery(const char *query)
{
// Validate connection.
if (!m_connected)
return false;
// Execute the query
int status = mysql_query(&m_conn, query);
if (status != 0) {
sprintf(m_errorMessage, "Error: %s", mysql_error(&m_conn));
return false;
}
// Store the result
m_result = mysql_store_result(&m_conn);
return true;
}
Je suis au courant de varargs, et j'ai essayé de suivre l'exemple ici (Variable number of arguments in C++?), mais je ne cherche pas simplement à lire les varargs, mais à les inclure dans la requête, ce qui est apparemment gênant pour moi.
Toutes les pensées sont les bienvenues, merci.