

Get in touch

Download Plugin Now
  • Follow
  • Follow
WP Data Access
  • Download
  • Support
  • Features
  • Pricing
  • Documentation
    • Tool Guide
    • App Builder
    • Data Explorer
    • SQL Query Builder
    • Plugin Settings
    • Legacy Tools
    • Remote Connections
a
M
  • Download
  • Support
  • Features
  • Pricing
  • Documentation
    • Tool Guide
    • App Builder
    • Data Explorer
    • SQL Query Builder
    • Plugin Settings
    • Legacy Tools
    • Remote Connections
Download Plugin Now

Remote Databases

  • MySQL | MariaDB
  • Heterogeneous Connections
  • Using ODBC | JDBC
  • Connect to SQL Server
  • WordPress user ID in SQL

Premium Data Services

  • Remote wizard
  • START HERE
  • Errors and messages
  • Limitations
  • Tutorials
  • Remote Databases
    • Overview
    • SQL Server
    • PostgreSQL
    • Oracle
    • MariaDB | MySQL
  • Remote Data Files
    • Overview
    • CSV files
    • JSON files
    • MS Access
    • XML files
    • Public URL
    • Synchronization
  • Advanced features
    • Performance
    • Indexes
View Categories

WordPress user ID in SQL

WP Data Access adds a session variable containing the WordPress user ID to its database connections. This allows plugin users to access the WordPress user ID in SQL queries, database views, triggers, functions and procedures.

Open the Query Builder and enter

select @wpda_wp_user_id

This returns your WordPress user ID.

Availability #

Session variable @wpda_wp_user_id is available in all WP Data Access connections. It works with local and remote databases. It even works when you connect to SQL Server, MS Access or another database via a proxy.

Usage #

The WordPress user ID is available in custom queries

select * from wpda_sas_student
where student_wp_user_id = @wpda_wp_user_id

And in your default where clause

WordPress user ID in default where

Database triggers #

The following triggers store the WP user ID in column student_wp_user_id of table wpda_sas_student on insert and update.

create trigger if not exists wpda_sas_student_insert before insert on wpda_sas_student
for each row
begin
	set new.student_wp_user_id = @wpda_wp_user_id;
end;
/
create trigger if not exists wpda_sas_student_update before update on wpda_sas_student
for each row
begin
	set new.student_wp_user_id=@wpda_wp_user_id;
end;
/

Usage in database procedures and function works similarly.

Views #

You CANNOT use a session variable in a view using plain SQL. This does NOT work:

create view v_error as
select * from wpda_sas_student
where student_wp_user_id = @wpda_wp_user_id

To work around this limitation, we can make the session variable available through a database function. You can create the function using the Data Explorer. Just open the new Data Explorer, click the Databases icon on the toolbar, select your database, and click the power icon. This is a one-time action that must be performed for each database where you want to use this feature.

After creating function wpda_get_wp_user_id this works:

create view v_access_wp_user_id as
select * from wpda_sas_student
where student_wp_user_id = wpda_get_wp_user_id()

Create function wpda_get_wp_user_id for a specific database #

Create function wpda_get_wp_user_id

Limitations #

  • Session variable @wpda_wp_user_id is only available within a WP Data Access content. Developers can use the plugin API to access the session variable from their own code.
  • Function wpda_get_wp_user_id() can be accessed from external tools as well. When session variable @wpda_wp_user_id is undefined, the function returns null.
  • Function wpda_get_wp_user_id() needs to be created for every database separately.

Need more WordPress values in SQL? #

WP Data Access gives you access to session variable @wpda_wp_user_id and function wpda_get_wp_user_id(). Other WordPress values can be added easily using hook wpda_dbinit.

The following code makes the WordPress user logon available in SQL from session variable @wpda_wp_user_login

add_action(
	'wpda_dbinit',
	function( $wpdadb ) {
		if ( null !== $wpdadb ) {
			$suppress_errors = $wpdadb->suppress_errors( true );
			$current_user    = wp_get_current_user();
			$wpdadb->query( 'set @wpda_wp_user_login = "' . $current_user->user_login . '"' );
			$wpdadb->suppress_errors( $suppress_errors );
		}
	},
	10,
	1
);

This code can be downloaded from the Code Manager website.

Add WP user login to SQL session

Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on 2025-05-22

Submit a Comment Cancel reply

Your email address will not be published. Required fields are marked *

Table of Contents
  • Availability
  • Usage
    • Database triggers
  • Views
  • Create function wpda_get_wp_user_id for a specific database
  • Limitations
  • Need more WordPress values in SQL?
WP Data Access
  • Follow
  • Follow
Links
$

Imprint

$

Privacy policy

$

Cookie policy

Get in touch
$

Contact us

$

Free support forum

$

Premium support

Resources


WordPress plugin directory



YouTube tutorials

Copyright © 2025 | All Right Reserves

Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}