2016-10-19 15 views
3

PHP 7.0.11で実行しているWordpressシステムを持っています。Wordpressを使用しています。私が使用したいプラグインが動作しないと私はmysql_real_escape_string()拡張機能は廃止されたことを発見した、このエラーメッセージを探していmysql_real_escape_stringをPHP7に変換するには?

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

になり、ログをチェックすることがありません。

この文をPHP 7以上で動作させるにはどうすればよいですか?

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

私はWordpressのドキュメントでこれを見つけた:wpdb::_real_escape()

+1

GETプラグインの更新版?コードはSQLインジェクションに脆弱に見える – RamRaider

+0

Wordpressで 'mysqli'拡張を使用することはできますか?' wpdb'を使用していますか? RamRaiderプラグインはかなりシンプルで、もう開発されていません。 –

+0

@RamRaiderによると、別のプラグインを更新または使用する必要があります。 mysqli_ *や 'PDO'を使わない方が安全です。とにかく、このプラグインはPHP 7をサポートしていないようです – Debflav

答えて

2

あなたがワードプレスのネイティブ機能を使用することができます

wpdb::_real_escape(string $string) 

または

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

find more here

+0

ありがとうございますが、私はすでにドキュメントでこれを見つけました。私はそれを適用するための問題を持っています。私のコードにそれを適用してもらえますか? (wpdb :: '' '' _real_escape''または '' real_escape''だけです) –

+0

この$ query = $ wpdb-> prepare( "SELECT $ wpdb-> postsからのpost_title WHERE post_title LIKE%s "、 "% "。$ myTitle。"% " ); –

+0

解決策は、サポートされていないプラグインを使用し、プリペアドステートメントですべての機能を変更することです。このプラグインは、自己責任で使用してください。 – Debflav

関連する問題