WordPress.DB.RestrictedFunctions.mysql_mysqli_init

mysql mysqli init

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
#1Matomo Analytics – Powerful, Privacy-First Insights for WordPress191,993892100k+Exception output is not escaped
#2Duplicator – Backups & Migration Plugin – Cloud Backups, Scheduled Backups, & More202,8781,9881m+Non-prefixed global variable
#3GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership201,832720700Non Singular String Literal Domain
#4WP phpMyAdmin214,5286,43540k+Missing Arg Domain
#5NinjaFirewall (WP Edition) – Advanced Security Plugin and Firewall221,2511,992100k+Non-prefixed global variable
#6WP Umbrella: Security Backup Restore & Monitoring221,0191,19980k+Exception output is not escaped
#7WP STAGING – Backups & Restore, Migration & Clone Plugin – Cloud Backups, Scheduled Backups231,6421,839100k+Non-prefixed global variable
#8WPvivid — Backup, Migration & Staging251,0001,464900k+Non-prefixed namespace