Vorbereitete DB-Abfrage vom _POST-Array

Hey Leute, ich bin ein Anfänger in WordPress und habe jetzt mein eigenes Thema geschrieben

Frage: Was ist die richtige Art, eine SQL-Abfrage für eine benutzerdefinierte MySQL-Tabelle in Kombination mit POST-Daten auszuführen?

Das Problem ist, dass die Daten doppelt vergeben werden, und ich habe keine Ahnung, wie ich das vermeiden kann:

Das folgende Szenario:

Eine Eingabe kommt über Ajax

Der Eingabewert: example’with’quotes

Wrepress Autoescapes in wp-settings.php das Post-Array mit wp_magic_quotes()

Danach sieht die Eingabe wie folgt aus: example \ ‘with \’ quotes

Wenn ich versuche, die letzte Abfrage über $this->wpdb->last_query in meinem Products_Model $this->wpdb->last_query , wird etwas $this->wpdb->last_query

 SELECT * FROM product WHERE name = 'example\\\'with\\\'quotes' 

was nicht passieren sollte;)

Mein Code – was ich bisher versucht habe

functions.php (Auszug)

 require_once(__DIR__."/inc/core/AppWpActions.php"); 

AppWpActions.php (Auszug)

 class AppWpActions { public function __construct() { $this->addSiteActions(); } private function addSiteActions() { add_action('wp_ajax_nopriv_web_products', [$this, "showProducts"]); add_action('wp_ajax_web_products', [$this, "showProducts"]); } public function showProducts() { require_once(get_template_directory()."/inc/modules/products/controllers/Product.php"); $objProduct = new Product(); $objProduct->setAjaxList(); } ] 

Produktklasse

 class Product { public function setAjaxList() { require_once(get_template_directory()."/inc/modules/onlineshop/models/Product_Model.php"); $objProduct = new Product_Model(); $arrData = $objProduct->getProducts($_POST['search']); header('Content-Type: application/json'); echo json_encode($arrData); wp_die(); } } 

Produktmodell

 class Product_Model { private $wpdb; private $arrStatusMessages = []; public function __construct() { global $wpdb; $this->wpdb = $wpdb; } public function getProducts($strSearch = "") { if (!empty($strSearch)) { $arrData = $this->wpdb->get_results($this->wpdb->prepare(" SELECT * FROM product WHERE name = %s ", $strSearch)); return $arrData; } else { return []; } } } 

Danke im Voraus für deine Antworten

Solutions Collecting From Web of "Vorbereitete DB-Abfrage vom _POST-Array"