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
#1404 Solution155821,53210k+Non-prefixed class
#2MDTF – Meta Data and Taxonomies Filter161,5501,9561k+Non-prefixed global variable
#3Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution181,229923100k+Exception output is not escaped
#4Pagopar – WooCommerce Gateway185301,215400Non-prefixed global variable
#5Matomo Analytics – Powerful, Privacy-First Insights for WordPress191,993892100k+Exception output is not escaped
#6Captcha Them All213003235k+Output is not escaped
#7FileOrganizer – WordPress File Manager21549261200k+unlink unlink
#8Modular DS: Monitor, update, and backup multiple websites211998240k+Exception output is not escaped
#9WP phpMyAdmin214,5286,43540k+Missing Arg Domain
#10Database Access with Adminer229832,5531k+Non-prefixed global variable
#11File Manager Pro – Filester22584411100k+Request data is not unslashed
#12WP OAuth Server (OAuth Authentication)221893453k+Non-prefixed function
#13Wenprise WeChatPay Payment Gateway For WooCommerce22443178400Exception output is not escaped
#14WP Umbrella: Security Backup Restore & Monitoring221,0011,19180k+Exception output is not escaped
#15Easy Digital Downloads – eCommerce Payments and Subscriptions made easy233,7028,48640k+Non-prefixed namespace
#16Freshdesk (official)23194386800Non-prefixed function
#17IP Geo Block233995898k+Output is not escaped
#18ManageWP Worker235015701m+Non-prefixed class
#19Shield Security – Smart Bot Blocking, Brute-Force Login Protection & File Scanning231,20223930k+Missing Translators Comment
#20Database Manager – WP Adminer241,0052,75220k+Non-prefixed global variable
#21Post Status Notifier Lite24984451700Missing direct file access protection
#22SEO Redirection Plugin – 301 Redirect Manager2427272510k+Non-prefixed global variable
#23Tamara Checkout246032482k+Exception output is not escaped
#24CheckoutWC Lite – Conversion optimized WooCommerce checkout251,4208572k+Text Domain Mismatch
#25DecaLog259432361k+Exception output is not escaped
#26ELEX WooCommerce Request a Quote253972622k+Request data is not unslashed
#27IP Location Block2540952810k+Output is not escaped
#28SlimStat Analytics251,17787070k+Exception output is not escaped
#29WPvivid — Backup, Migration & Staging251,0001,464900k+Non-prefixed namespace
#30FG Drupal to WordPress26273101700Unsafe printing function
#31BackUpWordPress2724527180k+Non-prefixed global variable
#32FG Joomla to WordPress272781017k+Unsafe printing function
#33FG PrestaShop to WooCommerce2725294900Unsafe printing function
#34FluentAuth – Login Security, Two-Factor Authentication, Passkeys & Social Login2827328410k+Missing Translators Comment
#35PhastPress281015310k+Exception output is not escaped
#36YASR – Yet Another Star Rating Plugin for WordPress3025237810k+Output is not escaped
#37ShopBuilder – WooCommerce Builder For Elementor355045810k+Non-prefixed global variable