int sql_disconnect(int sql_num) {
/* check that we are connected? */
if (! conn[sql_num].connected) {
printf("sql disconnect; not connected.");
return 0;
}
mysql_close(&conn[sql_num].mysql);
conn[sql_num].connected = 0;
return 1;
}
/*******************************************************************/
/* sql general commands */
/*******************************************************************/
int sql_selectdb(int sql_num, char *database) {
/* check that we are connected to a mysql server */
if (!conn[sql_num].connected) {
printf("sql query statement; you are not connected to a mysql server yet (sql connect).");
return 0;
}
int sql_query(int sql_num, char *query) {
if (! conn[sql_num].connected) {
printf("sql query statement; you are not connected to a mysql server yet");
return 0;
}
/* check there is no other active query? */
if (conn[sql_num].qflag) {
printf("Another query cannot be made until the current query has been finished with \"sql endquery\".");
return 0;
}
/* execute the sql query statement */
if (mysql_query(&conn[sql_num].mysql, query)) {
output_error(sql_num);
return 0;
}
/* if no results were found and none expected then all ok */
/* otherwise we assume the query worked ok, now get the results */
if (conn[sql_num].result == NULL) {
if (conn[sql_num].nfields) {
output_error(sql_num);
return 0;
}
// show_msg("sql startquery; query executed ok but returned no results.");
return 1;
}
/* return all ok now, see fetchrow & endquery for more details */
conn[sql_num].qflag = 1;
return 1;
}
MYSQL_FIELD *sql_fetchfield(int sql_num)
{
/* check we are connected? */
if (! conn[sql_num].connected) {
printf("Not connected to a server.");
return NULL;
}
/* check we had a query started? */
if (! conn[sql_num].qflag) {
printf("No query has been started.");
return NULL;
}
return mysql_fetch_field(conn[sql_num].result);
}
MYSQL_ROW sql_fetchrow(int sql_num)
{
/* check we are connected? */
if (! conn[sql_num].connected) {
printf("Not connected to a server.");
return NULL;
}
/* check we had a query started? */
if (! conn[sql_num].qflag) {
printf("No query has been started.");
return NULL;
}
return mysql_fetch_row(conn[sql_num].result);
}
int sql_endquery(int sql_num) {
/* check we are connected? */
if (! conn[sql_num].connected) {
printf("Not connected to a server.");
return 0;
}
/* check we had a query started? */
if (! conn[sql_num].qflag) {
printf("No query has been started.");
return 0;
}