Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP警告:wpdb::prepare()WPML插件缺少参数2_Php_Wordpress_Plugins_Warnings_Wpml - Fatal编程技术网

PHP警告:wpdb::prepare()WPML插件缺少参数2

PHP警告:wpdb::prepare()WPML插件缺少参数2,php,wordpress,plugins,warnings,wpml,Php,Wordpress,Plugins,Warnings,Wpml,突然,我在wordpress项目的特定后端页面上出现错误: 警告:wpdb::prepare()缺少参数2,在第463行的…/wp content/plugins/wpml media/inc/wpml_media.class.php中调用,在第992行的…/wp includes/wp-db.php中定义 这将是: wpml_media.class.php // get language of their parents if(!empty($missing_langs)){

突然,我在wordpress项目的特定后端页面上出现错误:

警告:wpdb::prepare()缺少参数2,在第463行的…/wp content/plugins/wpml media/inc/wpml_media.class.php中调用,在第992行的…/wp includes/wp-db.php中定义

这将是:

wpml_media.class.php

// get language of their parents
if(!empty($missing_langs)){     
    $results = $wpdb->get_results($wpdb->prepare("
        SELECT p.ID, t.language_code 
        FROM {$wpdb->posts} p JOIN {$wpdb->prefix}icl_translations t ON p.ID = t.element_id AND t.element_type = CONCAT('post_', p.post_type)
        WHERE p.ID IN(".join(',', $missing_langs).")
    "));
    foreach($results as $row){
        $parent_langs[$row->ID] = $row->language_code;
    }
}
function prepare( $query, $args ) {
    if ( is_null( $query ) )
        return;

    $args = func_get_args();
    array_shift( $args );
    // If args were passed as an array (as in vsprintf), move them up
    if ( isset( $args[0] ) && is_array($args[0]) )
        $args = $args[0];
    $query = str_replace( "'%s'", '%s', $query ); // in case someone mistakenly already singlequoted it
    $query = str_replace( '"%s"', '%s', $query ); // doublequote unquoting
    $query = preg_replace( '|(?<!%)%f|' , '%F', $query ); // Force floats to be locale unaware
    $query = preg_replace( '|(?<!%)%s|', "'%s'", $query ); // quote the strings, avoiding escaped strings like %%s
    array_walk( $args, array( $this, 'escape_by_ref' ) );
    return @vsprintf( $query, $args );
}
wp db.php

// get language of their parents
if(!empty($missing_langs)){     
    $results = $wpdb->get_results($wpdb->prepare("
        SELECT p.ID, t.language_code 
        FROM {$wpdb->posts} p JOIN {$wpdb->prefix}icl_translations t ON p.ID = t.element_id AND t.element_type = CONCAT('post_', p.post_type)
        WHERE p.ID IN(".join(',', $missing_langs).")
    "));
    foreach($results as $row){
        $parent_langs[$row->ID] = $row->language_code;
    }
}
function prepare( $query, $args ) {
    if ( is_null( $query ) )
        return;

    $args = func_get_args();
    array_shift( $args );
    // If args were passed as an array (as in vsprintf), move them up
    if ( isset( $args[0] ) && is_array($args[0]) )
        $args = $args[0];
    $query = str_replace( "'%s'", '%s', $query ); // in case someone mistakenly already singlequoted it
    $query = str_replace( '"%s"', '%s', $query ); // doublequote unquoting
    $query = preg_replace( '|(?<!%)%f|' , '%F', $query ); // Force floats to be locale unaware
    $query = preg_replace( '|(?<!%)%s|', "'%s'", $query ); // quote the strings, avoiding escaped strings like %%s
    array_walk( $args, array( $this, 'escape_by_ref' ) );
    return @vsprintf( $query, $args );
}
函数prepare($query,$args){
if(is_null($query))
返回;
$args=func_get_args();
数组移位($args);
//如果args作为数组传递(如在vsprintf中),则将其上移
if(isset($args[0])&&is_数组($args[0]))
$args=$args[0];
$query=str_replace(“'%s'”,%s',$query);//以防有人错误地引用了它
$query=str_replace(''%s','%s',$query);//双引号取消引号
$query=preg_replace('|)(?

谢谢

关于这个问题有更多的信息。基本上,不要惊慌,因为这只是一个警告,所以没有任何东西会真正损坏

如果您希望修改wpml媒体插件以消除此错误,则上面链接中的开发者信息应该会有所帮助。如果您只是希望警告消失,那么我引用:

首先,如果您是一个用户,并且希望消除这些错误,那么应该在PHP中关闭错误的显示。有很多方法可以做到这一点,例如在PHP.ini、.htaccess等中。为此,您可以将其放在wp-config.PHP中。(请注意,在生产站点上隐藏错误是一种很好的做法。)


关于这个问题还有更多的信息。基本上,不要惊慌,因为这只是一个警告,所以没有任何东西会真正崩溃

如果您希望修改wpml媒体插件以消除此错误,则上面链接中的开发者信息应该会有所帮助。如果您只是希望警告消失,那么我引用:

首先,如果您是一个用户,并且希望消除这些错误,那么应该在PHP中关闭错误的显示。有很多方法可以做到这一点,例如在PHP.ini、.htaccess等中。为此,您可以将其放在wp-config.PHP中。(请注意,在生产站点上隐藏错误是一种很好的做法。)


关于这个问题还有更多的信息。基本上,不要惊慌,因为这只是一个警告,所以没有任何东西会真正崩溃

如果您希望修改wpml媒体插件以消除此错误,则上面链接中的开发者信息应该会有所帮助。如果您只是希望警告消失,那么我引用:

首先,如果您是一个用户,并且希望消除这些错误,那么应该在PHP中关闭错误的显示。有很多方法可以做到这一点,例如在PHP.ini、.htaccess等中。为此,您可以将其放在wp-config.PHP中。(请注意,在生产站点上隐藏错误是一种很好的做法。)


关于这个问题还有更多的信息。基本上,不要惊慌,因为这只是一个警告,所以没有任何东西会真正崩溃

如果您希望修改wpml媒体插件以消除此错误,则上面链接中的开发者信息应该会有所帮助。如果您只是希望警告消失,那么我引用:

首先,如果您是一个用户,并且希望消除这些错误,那么应该在PHP中关闭错误的显示。有很多方法可以做到这一点,例如在PHP.ini、.htaccess等中。为此,您可以将其放在wp-config.PHP中。(请注意,在生产站点上隐藏错误是一种很好的做法。)


$wpdb->prepare
至少需要两个参数

试试这样:

$wpdb->prepare("
        SELECT p.ID, t.language_code 
        FROM {$wpdb->posts} p JOIN {$wpdb->prefix}icl_translations t ON p.ID = t.element_id AND t.element_type = CONCAT('post_', p.post_type)
        WHERE p.ID IN(%s)", join(',', $missing_langs))

$wpdb->prepare
至少需要两个参数

试试这样:

$wpdb->prepare("
        SELECT p.ID, t.language_code 
        FROM {$wpdb->posts} p JOIN {$wpdb->prefix}icl_translations t ON p.ID = t.element_id AND t.element_type = CONCAT('post_', p.post_type)
        WHERE p.ID IN(%s)", join(',', $missing_langs))

$wpdb->prepare
至少需要两个参数

试试这样:

$wpdb->prepare("
        SELECT p.ID, t.language_code 
        FROM {$wpdb->posts} p JOIN {$wpdb->prefix}icl_translations t ON p.ID = t.element_id AND t.element_type = CONCAT('post_', p.post_type)
        WHERE p.ID IN(%s)", join(',', $missing_langs))

$wpdb->prepare
至少需要两个参数

试试这样:

$wpdb->prepare("
        SELECT p.ID, t.language_code 
        FROM {$wpdb->posts} p JOIN {$wpdb->prefix}icl_translations t ON p.ID = t.element_id AND t.element_type = CONCAT('post_', p.post_type)
        WHERE p.ID IN(%s)", join(',', $missing_langs))