2016-10-19 1 views
3

Ich habe ein Wordpress-System läuft auf PHP 7.0.11 mit Wordpress. Ein Plugin das ich verwenden möchte nicht funktioniert und die Protokolle überprüft Nachricht führt inWie konvertiert man mysql_real_escape_string zu PHP7?

PHP Fatal error: Uncaught Error: Call to undefined function mysql_real_escape_string() in…

der Suche nach diesem Fehler habe ich gefunden, dass die mysql_real_escape_string() Erweiterung aufgegeben.

Wie kann ich diese Anweisung in PHP 7 und höher konvertieren?

$ids = mysql_real_escape_string($ids); 
$result = $wpdb->query("DELETE FROM $table_name WHERE id IN($ids)"); 

Ich habe dies in den Wordpress-Dokumente gefunden: wpdb::_real_escape()

+1

get verwenden können eine aktualisierte Version des Plugins? Der Code sieht anfällig für sql Injektion – RamRaider

+0

Kann ich eine 'mysqli' Erweiterung in Wordpress verwenden, wie es' wpdb' verwendet? RamRaider das Plugin ist recht einfach und nicht mehr entwickelt. –

+0

Wie @RamRaider sagte, sollten Sie ein anderes Plugin aktualisieren oder verwenden. Es ist nicht wirklich sicher, mysqli_ * 'oder' PDO' nicht zu verwenden. Wie auch immer, dieses Plugin scheint PHP 7 – Debflav

Antwort

2

Sie Wordpress native Funktion

wpdb::_real_escape(string $string) 

oder

$query = $wpdb->prepare(
    "SELECT post_title from $wpdb->posts 
    WHERE post_title LIKE %s", 
    "%" . $myTitle . "%" 
); 

find more here

+0

Danke, aber ich habe das schon in der Dokumentation gefunden. Ich habe Probleme, es anzuwenden. Könnten Sie es bitte auf meinen Code anwenden? (Ist es 'wpdb ::' oder nur '_real_escape' oder' real_escape', wie ich nicht mit php vertraut bin) –

+0

können Sie prepare() verwenden, wenn Sie möchten wie $ query = $ wpdb-> vorbereiten ( "SELECT post_title aus $ wpdb-> Beiträge WHERE post_title LIKE% s ", "% ". $ myTitle."% " ); –

+0

Also die Lösung ist, ein nicht unterstütztes Plugin zu verwenden und alle Funktionen mit vorbereiteten Anweisungen zu ändern? Benutzen Sie dieses Plugin auf eigene Gefahr. – Debflav