WP Data Access
  • Download
  • Support
  • Features
  • Pricing
  • Documentation
Select Page
Popular Search formimportsqlqueryshortcode

WP Data Access

  • Getting started
  • Installation
  • What’s new?
  • Patches
  • Known limitations
  • FAQ

Data Tables

  • Getting Started
  • Creating and publishing
  • Responsive data tables
  • SEO friendly data tables
  • Adding hyperlinks
  • Extension Manager
  • Style Manager
  • Language settings
Styling
  • Style Manager
  • Premium styling
  • Global styling
  • Code Manager Styling
  • Manual styling
  • Styling issues
Filters
  • Static filters
  • Interactive filters
    • URL parameters
    • Search Panes
    • Search Builder
    • Search form
    • Advanced search
    • Geolocation search
Export & other buttons
  • Export to PDF, CSV, Excel, SQL
  • Print & copy buttons
  • Column selection buttons
  • Custom buttons
Advanced features
  • Advanced settings
  • Large tables & performance
  • Progressively SHOW MORE
  • Custom queries
  • Custom Post Types
  • Row grouping
  • Responsive master-detail
  • Master-detail tables
  • Non admin user access
Demos & tutorials
  • Demos
  • Tutorials

Data Apps

  • Data Projects
  • Projects and templates
  • Supported Data Types
  • One-To-Many relationships
  • Many-To-Many relationships
  • Registration page
  • Manage table options
  • Shortcode usage
Project Templates
  • Project Templates
  • Creating templates
  • Table Settings
  • Relationships
  • List Table
  • Data Entry
  • Reconcile
Data Forms
  • Data Forms
  • Overview
  • Project Demo
  • Page Demo
Advanced features
  • Adding filters
  • Custom validation
  • Add less/more button
  • User roles
  • Managing roles and users
  • Advanced table options
  • Advanced lookups
  • Front-end toolbar
  • Transfer to other WP site
Demos & tutorials
  • Demos
  • Tutorials

Data Explorer

  • Getting started
  • Navigation
  • Explore tables & views
  • Manage tables & views
  • Naming conventions
Manage Actions
  • Actions
Manage Settings
  • Settings
  • Table Settings
  • Column Settings
  • Search Settings
  • Geolocation Settings
  • Dynamic Hyperlinks
  • Dashboard Menus
Data Management
  • Import CSV & SQL files
  • Run SQL script files
  • Data Backup
Problems & solutions
  • InnoDB #rows estimation
  • Import file too large
  • Transfer to other WP DB

Remote Databases

  • MySQL | MariaDB
Other DBMS
  • Heterogeneous Connections
  • Using ODBC | JDBC
  • Connect to SQL Server
Premium Data Services
  • Remote wizard
  • START HERE
  • Errors and messages
  • Limitations
  • Tutorials
  • Remote Databases
    • Remote databases
    • SQL Server
    • PostgreSQL
    • Oracle
    • MariaDB | MySQL
    Remote Data Files
    • Remote data files
    • CSV files
    • JSON files
    • MS Access
    • XML files
    • Public URL
    • Synchronization
    Advanced features
    • Performance
    • Indexes

SQL

  • Getting Started
  • Tutorials
  • Visual Query Builder
  • Writing queries
  • Data exchange
  • Stored procedures
  • Database triggers
  • Scheduled queries

Business Intelligence

  • Getting started
  • Dashboards
  • Sharing dashboards
Dashboards Widgets
  • Dashboard Widgets
  • Publication Widget
  • Project Widget
  • Chart Widget
  • Custom Code Widget
  • Database Widget
  • Sharing Widgets

Table Design

  • Getting started
  • Introduction
  • Basic mode

Plugin Settings

  • Getting started
  • Plugin
  • Back-end
  • Front-end
  • Dashboard
  • Data Forms
  • Data Tables
  • Data Backup
  • Uninstall
  • Manage Repository
  • Manage Roles
  • System Info

Code

Shortcodes
  • Overview
  • wpdataaccess
  • wpdadataproject
  • wpdadataforms
  • wpdadiehard
  • wpdageomap
  • wpdawidget
Plugin Variables
  • WordPress user ID in SQL
  • Environment variables
Hooks & filters
  • Overview
  • Hooks
    • Overview
    • wpda_add_search_actions
    • wpda_add_search_filter
    • wpda_before_list_table
    • wpda_after_list_table
    • wpda_wpdataaccess_prepare
    Filters
    • Overview
    • wpda_column_default
    • wpda_before_simple_form
    • wpda_after_simple_form
    • wpda_construct_where_clause
API
  • WP Data Access API
  • Remote database access
  • CRUD Example
  • Extensions
    • Alternative search algorithm
    • Alternative buttons extension
Code Manager
  • Overview
  • Write code
  • Share(d) code

WordPress user ID in SQL

Table of Contents
  • Availability
  • Usage
    • Data Tables
    • Database triggers
  • Views
  • Limitations
  • Need more WordPress values 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 #

Data Tables #

The WordPress user ID is available in custom queries

select * from wpda_sas_student
where student_wp_user_id = @wpda_wp_user_id

Or 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;
/

Make sure column student_wp_user_id is read-only in your Data Project (a new feature on version 5.2.3 as well). This prevents conflicting actions on the same column.

Usage in database procedures and function works similarly.

Views #

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

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

To use the WordPress user ID in a view we need to make the session variable available in a different way. Luckily the session variable can be accessed in a database function. When you start the Data Explorer, you will see a plug icon after the selected database name. When you press this plugin, the plugin creates a database function which you can use in your views. 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()

Now you can finally create lookups for your Data Projects using the WordPress 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
  • Twitter
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on 2023-03-24
Environment variables

Submit a Comment Cancel reply

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

Table of Contents
  • Availability
  • Usage
    • Data Tables
    • Database triggers
  • Views
  • Limitations
  • Need more WordPress values in SQL?

Links

Blogs
Tutorials
Demos

Socials

LinkedIn
Twitter

Get in touch

Premium support
Free support forum
Contact us

Resources

WordPress plugin directory
YouTube tutorials

Passionate Programmers B.V. © 2017 - 2023 All rights reserved