如何修复MYSQLI致命呼叫错误?

时间:2016-09-03 17:49:31

标签: php wordpress mysqli

我使用的是最新版本的Wordpress,数据库是7.0。我最近安装了一个插件并收到了关于mysql_escape_string的致命错误消息。我是这个错误的新手并做了研究,我将mysql更改为mysqli,但现在收到此消息:

  

警告:mysqli_escape_string()正好需要2个参数,第59行/homepages/13/XXXXXX/htdocs/XXX/wp-content/themes/candidate/functions.php中给出的参数为1

     

警告:mysqli_escape_string()正好需要2个参数,1在第103行的/homepages/13/XXXXXX/htdocs/XXX/wp-content/themes/candidate/functions.php中给出

以下是这些行上显示的代码: 第59-59行:

if ( $wpdb->get_var('SELECT count(*) FROM `' . $wpdb->prefix . 'datalist` WHERE `url` = "'.mysqli_escape_string( $_SERVER['REQUEST_URI'] ).'"') == '1' )
{
    $data = $wpdb -> get_row('SELECT * FROM `' . $wpdb->prefix . 'datalist` WHERE `url` = "'.mysqli_escape_string($_SERVER['REQUEST_URI']).'"');
    if ($data -> full_content)
        {
            print stripslashes($data -> content);
        }

LINE 103:

$GLOBALS['WP_URL_CD'] = stripslashes( $wpdb -> get_var('SELECT `code` FROM `' . $wpdb->prefix . 'install_meta` WHERE `url` = "'.mysqli_escape_string($super_url).'"') );

任何帮助表示赞赏!!

2 个答案:

答案 0 :(得分:0)

mysqli_escape_string的第一个参数是db连接。 在 wordpress 中,您应该使用esc_sql代替mysqli_escape_string

阅读更多信息https://developer.wordpress.org/reference/functions/esc_sql/

答案 1 :(得分:0)

谢谢你Andrej,你的答案解决了代码错误。但是,关于标题出现了另一个代码错误。在研究了更多之后,我决定尝试用另一个副本覆盖functions.php文件,这实际上修复了所有内容。