WordPress.DB.RestrictedClasses.mysql__PDO

mysql PDO

The plugin uses a raw MySQL extension or class instead of WordPress database APIs.

medium weight

Why It Shows Up

The scan found `mysql_*`, `mysqli_*`, PDO MySQL, or related database functions in plugin code.

Why It Matters

Bypassing `$wpdb` can ignore WordPress database configuration, escaping conventions, character sets, and compatibility layers.

How to Fix

  • Replace raw MySQL calls with `$wpdb` methods or higher-level WordPress APIs.
  • Use `$wpdb->prepare()` for dynamic values.
  • If a third-party library requires a database connection, isolate it and document why WordPress APIs cannot be used.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#1MDTF – Meta Data and Taxonomies Filter161,5501,9561k+Non-prefixed global variable
#2Pagopar – WooCommerce Gateway185301,215400Non-prefixed global variable
#3Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution191,218901100k+Exception output is not escaped
#4Matomo Analytics – Powerful, Privacy-First Insights for WordPress191,900877100k+Exception output is not escaped
#5Captcha Them All213003235k+Output is not escaped
#6FileOrganizer – WordPress File Manager21536241200k+unlink unlink
#7Modular DS: Monitor, update, and backup multiple websites211598240k+Exception output is not escaped
#8WP phpMyAdmin214,5286,43550k+Missing Arg Domain
#9Database Access with Adminer229832,5531k+Non-prefixed global variable
#10File Manager Pro – Filester22566391100k+Request data is not unslashed
#11WP OAuth Server (OAuth Authentication)221893473k+Non-prefixed function
#12Wenprise WeChatPay Payment Gateway For WooCommerce22443178400Exception output is not escaped
#13WP Umbrella: Security Backup Restore & Monitoring2297099980k+Exception output is not escaped
#14Easy Digital Downloads – eCommerce Payments and Subscriptions made easy233,71910,28040k+Non-prefixed namespace
#15Freshdesk (official)23194386800Non-prefixed function
#16IP Geo Block233995898k+Output is not escaped
#17ManageWP Worker235065651m+Non-prefixed class
#18Shield Security – Smart Bot Blocking, Brute-Force Login Protection & File Scanning231,11820230k+Missing Translators Comment
#19404 Solution244831,35510k+Non-prefixed class
#20ELEX WooCommerce Request a Quote243982662k+Request data is not unslashed
#21Database Manager – WP Adminer241,0052,75220k+Non-prefixed global variable
#22Post Status Notifier Lite24984451700Missing direct file access protection
#23SEO Redirection Plugin – 301 Redirect Manager2427272510k+Non-prefixed global variable
#24CheckoutWC Lite – Conversion optimized WooCommerce checkout251,4168542k+Text Domain Mismatch
#25DecaLog259432361k+Exception output is not escaped
#26IP Location Block2552162410k+Output is not escaped
#27Tamara Checkout256012282k+Exception output is not escaped
#28SlimStat Analytics251,17787070k+Exception output is not escaped
#29WPvivid — Backup, Migration & Staging259031,461900k+Non-prefixed namespace
#30FG Drupal to WordPress26275100700Unsafe printing function
#31FG PrestaShop to WooCommerce2625494900Unsafe printing function
#32BackUpWordPress2724527190k+Non-prefixed global variable
#33FG Joomla to WordPress272781017k+Unsafe printing function
#34PhastPress281015310k+Exception output is not escaped
#35SQLite Database Integration29161893k+Exception output is not escaped
#36YASR – Yet Another Star Rating Plugin for WordPress3025237810k+Output is not escaped
#37FluentAuth – The Ultimate Authorization & Security Plugin for WordPress344422910k+Nonce verification recommended
#38ShopBuilder – WooCommerce Builder For Elementor395144110k+Non-prefixed global variable