$ wpdb-> get_row Ergebnisse mit doppelten Anführungszeichen führen zu Array-Problemen

Ich habe ein Objekt, das basierend auf den Eigenschaften eines untergeordneten Objekts dynamisch eine Abfrage erstellt. Hier ist der Code:

$strQuery = "SELECT "; foreach ($this->arRelationMap as $key => $value) { $strQuery .= "" . $key . ", "; } $strQuery = substr($strQuery, 0, strlen($strQuery)-2); $strQuery .= " FROM " . $this->strTableName . " WHERE id = %d"; $arRow = $wpdb->get_row($wpdb->prepare( "".$strQuery."", $this->id), ARRAY_A); foreach($arRow as $key => $value) { $strMember = $this->arRelationMap[$key]; if (property_exists($this, $strMember)) { $value = esc_html( $value ); //This helps by allowing the sanitized data //to be displayed but the error message //is still displayed as well. Not sure why. if (is_numeric($value)) { eval('$this->' . $strMember . ' = ' . $value . ';'); } else { eval('$this->' . $strMember . ' = "' . $value . '";'); }; }; }; 

Ein Problem tritt auf, wenn eine der Spalten ein Doppelzitat enthält. Zum Beispiel können die Ergebnisse etwa so aussehen: Verwendet 61 “Türen.

Im obigen Beispiel verursacht die Verwendung von Anführungszeichen zur Angabe von Zoll diesen Fehler:

 Parse error: syntax error, unexpected 'doors' (T_STRING) 

Ich versuche, meine Ergebnisse zu bereinigen, aber ich hatte kein Glück.

Wie ich im Kommentar im Code angegeben habe, habe ich versucht, esc_html zu verwenden, um das doppelte Anführungszeichen zu bereinigen, und es scheint zu helfen, indem die Ergebnisse angezeigt werden, aber der Parse-Fehler immer noch angezeigt wird.

Ich vermute, das doppelte Zitat verursacht ein Problem, weil das Array doppelte Anführungszeichen verwendet, aber ich bin mir nicht sicher, wie ich die get_row Ergebnisse sterilisieren kann, bevor sie ein Array werden.

Solutions Collecting From Web of "$ wpdb-> get_row Ergebnisse mit doppelten Anführungszeichen führen zu Array-Problemen"