WordPress.DB.PreparedSQLPlaceholders.QuotedDynamicPlaceholderGeneration

Quoted Dynamic Placeholder Generation

A SQL query is built in a way that Plugin Check cannot verify as safely prepared.

critical weight

Why It Shows Up

The scan found missing, incorrect, quoted, unsupported, or mismatched SQL placeholders around `$wpdb->prepare()` usage.

Why It Matters

Broken preparation can leave dynamic SQL values unsafe or make queries behave differently than intended.

How to Fix

  • Keep placeholders in the SQL string and pass dynamic values as separate arguments.
  • Use the placeholder that matches the value type.
  • Do not quote placeholders manually, and use allowlists for identifiers or SQL fragments.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#1AweBooking – Hotel Booking System203095141k+Non-prefixed global variable
#2E2Pdf – Export Pdf Tool for WordPress221,08185210k+Unsafe printing function
#3easyReservations225,3072,480700Text Domain Mismatch
#4MotoPress Hotel Booking223,0671,05010k+Text Domain Mismatch
#5GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI233,4032,48310k+Output is not escaped
#6Link Whisper Free233,9445,45630k+Text Domain Mismatch
#7Restaurant Menu and Food Ordering233858292k+Non-prefixed global variable
#8Predictive Search for WooCommerce23514633700Output is not escaped
#9Yoast SEO – Advanced SEO with real-time guidance and built-in AI2416038510m+Non-prefixed global variable
#10پارسی دیت – Parsi Date25130321100k+Non-prefixed hook name
#11Staatic – Static Site Generator for WordPress304492343k+SQL query is not prepared
#12WP Docs302662541k+Output is not escaped
#13Sublanguage33266287700Output is not escaped
#14Enhanced Media Library3636111760k+Unsafe printing function
#15Simple Image XML Sitemap37119161k+Output is not escaped
#16Total Sales Counts for WooCommerce4012162700SQL query is not prepared