diff --git a/src/modules/Mysql/mysql.c b/src/modules/Mysql/mysql.c index 149007c34951b928860398e6b99a3b4a1d91f36d..506c4024f77ad0c1ff075d5bc86168556f45a323 100644 --- a/src/modules/Mysql/mysql.c +++ b/src/modules/Mysql/mysql.c @@ -1032,7 +1032,7 @@ static void f_sqlstate(INT32 args) *! you want to access with this function. *! *! @seealso - *! @[create()], @[create_db()], @[drop_db()] + *! @[create()], @[create_db()], @[drop_db()], @[query_db()] */ static void f_select_db(INT32 args) { @@ -1073,6 +1073,26 @@ static void f_select_db(INT32 args) pop_n_elems(args); } +/*! @decl string|zero query_db() + *! + *! Returns the currently selected database. + *! + *! @seealso + *! @[select_db()] + */ +static void f_query_db(INT32 args) +{ + MYSQL *mysql = PIKE_MYSQL->mysql; + + pop_n_elems(args); + + if (mysql && mysql->db) { + push_text(mysql->db); + } else { + push_undefined(); + } +} + static void low_query(INT32 args, char *name, int flags) { MYSQL *mysql = PIKE_MYSQL->mysql; @@ -2026,6 +2046,8 @@ PIKE_MODULE_INIT ADD_FUNCTION("insert_id", f_insert_id,tFunc(tVoid,tInt), ID_PUBLIC); /* function(string:void) */ ADD_FUNCTION("select_db", f_select_db,tFunc(tStr,tVoid), ID_PUBLIC); + /* function(:string) */ + ADD_FUNCTION("query_db", f_query_db, tFunc(tNone,tStr), ID_PUBLIC); /* function(string:int|object) */ ADD_FUNCTION("big_query", f_big_query,tFunc(tStr,tObj), ID_PUBLIC); /* function(string:int|object) */