WHMCS SQL Helper Functions


Wondering how to access your WHMCS database while developing templates, custom pages or addon modules? well dont look any further. WHMCS  offers a full array of SQL Helper Functions to SELECT, INSERT and UPDATE information right form within WHMCS itself.

Do I have to create a database connection?

WHMCS maintains a connection to the database throughout each user interaction which enables you to leverage and utilize this same connection using the  provided SQL Helper Functions.

Lets dive in and take a look at what is available

WHMCS provides a set of SQL Helper Functions for database interactions within the WHMCS environment, ideal for developers creating templates, custom pages, or addon modules. These functions allow for effective SELECT, INSERT, and UPDATE operations directly within WHMCS.

Full Queries


Execute any SQL query, particularly useful for complex queries beyond basic operations.


  • $query (string): The raw SQL query to be executed.


full_query("SELECT * FROM tblclients WHERE status = 'Active'");


  • No data sanitation or sanity checking. Sanitize inputs beforehand to prevent SQL injections.
  • Suitable for complex SQL operations not supported by other helper functions.

Select Queries

select_query($table, $fields, $where, $sort, $sortorder, $limits, $join)

Retrieve data from the database with parameters to refine the query.


  • $table (string): Name of the table.
  • $fields (string/array): Fields to select, comma-separated or array.
  • $where (array): Conditions for the query.
  • $sort (string, optional): Field to sort by.
  • $sortorder (string, optional): ‘ASC’ or ‘DESC’.
  • $limits (string, optional): Record selection range, e.g., “0,10”.
  • $join (string, optional): For inner join with another table.


select_query('tblclients', 'id,firstname,lastname', array('status' => 'Active'), 'id', 'ASC', '0,10');


  • $where is an associative array with keys as column names.
  • $sort, $sortorder, and $limits are optional for refining the query.

Insert Queries

insert_query($table, $data)`

Simplify the process of inserting data into the database.


  • $table (string): Table name for data insertion.
  • $data (array): Associative array with column names as keys and data to insert as values.


insert_query('tblclients', array('firstname' => 'John', 'lastname' => 'Doe'));


  • Keys in $data should correspond to column names.
  • Data is automatically escaped for SQL injection protection.


  • Exception if the table does not exist.
  • Exception for key-column mismatch.