Wie konvertiere ich mysql_real_escape_string in PHP7?

Lesezeit: 2 Minuten

Benutzer-Avatar
Marian Rick

Ich habe ein WordPress-System am Laufen PHP 7.0.11 verwenden WordPress. Ein Plugin, das ich verwenden möchte, funktioniert nicht und die Überprüfung der Protokolle führt zu Problemen

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

Auf der Suche nach dieser Fehlermeldung habe ich festgestellt, dass die mysql_real_escape_string() Erweiterung wurde abgelehnt.

Wie kann ich diese Anweisung konvertieren, damit sie in PHP 7 und höher funktioniert?

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

Ich habe das in den WordPress-Dokumenten gefunden: wpdb::_real_escape()

  • eine aktualisierte Version des Plugins erhalten? Der Code sieht anfällig für SQL-Injection aus

    – Professor Abronsius

    19. Oktober 2016 um 7:48 Uhr

  • Kann ich eine verwenden mysqli Erweiterung in WordPress, da es verwendet wird wpdb? RamRaider das Plugin ist recht einfach und nicht mehr weiterentwickelt.

    – Marian Rick

    19. Oktober 2016 um 7:50 Uhr

  • Wie @RamRaider sagte, sollten Sie ein anderes Plugin aktualisieren oder verwenden. Es ist nicht wirklich sicher, es nicht zu verwenden mysqli_* oder PDO. Wie auch immer, dieses Plugin scheint PHP 7 nicht zu unterstützen

    – Debflav

    19. Oktober 2016 um 7:54 Uhr


  • Ich habe dies in den wp-Dokumenten gefunden. Ist dies ein zu ersetzender WordPress-Workaround mysql_real_escape_string mit real_escape? developer.wordpress.org/reference/classes/wpdb/_real_escape

    – Marian Rick

    19. Oktober 2016 um 7:55 Uhr

  • Ich bin mit WordPress nicht vertraut, aber es scheint, dass diese Funktion verwendet wird mysql_real_escape_string oder mysqli_real_escape_string Folgen Sie Ihren aktuellen Treibern.

    – Debflav

    19. Oktober 2016 um 7:58 Uhr

Benutzer-Avatar
viraler Barot

Sie können die native WordPress-Funktion verwenden

wpdb::_real_escape( string $string )

oder

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

finden Sie hier mehr

  • Danke, aber das habe ich 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_escapeda ich mit PHP nicht vertraut bin)

    – Marian Rick

    19. Oktober 2016 um 8:00 Uhr

  • Sie können “prepare()” verwenden, wenn Sie so wollen $query = $wpdb->prepare( “SELECT post_title from $wpdb->posts WHERE post_title LIKE %s”, “%” . $myTitle . “%” );

    – viraler Barot

    19. Oktober 2016 um 8:05 Uhr

  • Die Lösung besteht also darin, ein nicht unterstütztes Plugin zu verwenden und alle Funktionen mit vorbereiteten Anweisungen zu ändern? Verwenden Sie dieses Plugin auf eigene Gefahr..

    – Debflav

    19. Oktober 2016 um 8:13 Uhr

  • Eine echte Lösung besteht darin, alle mysql_real_escape_strings mit esc_sql aus Ihrem Plugin zu finden und zu ersetzen

    – viraler Barot

    19. Oktober 2016 um 8:20 Uhr

  • @viralbarot Vielen Dank! Mein Problem behoben

    – Markieren

    6. Juli 2017 um 17:03 Uhr

1386240cookie-checkWie konvertiere ich mysql_real_escape_string in PHP7?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy