با سلام.
من از وردپرس 3.6.1 استفاده میکنم.
روی هاست قبلی هیچ مشکلی نبود!
ولی تو هاست جدید در فعال کردن افزونه myLinksDump ارور زیر به نمایش میاد. البته افزونه فعال میشه.
خطای Multiple primary key defined در پایگاه‌داده وردپرس برای دستور ALTER TABLE wp_links_dump ADD PRIMARY KEY (link_id) ساخته شده توسط activate_plugin, do_action('activate_mylinksdump/myLinksDump.php'), call_user_func_array, linkdoni_install, dbDelta
سپس در موقع افزودن لینک ارور زیر به نمایش در میاد:
PHP Warning: Missing argument 2 for wpdb::prepare(), called in D:\Hosts\***\httpdocs\wp-content\plugins\mylinksdump\myLinksDump.php on line 328 and defined in D:\Hosts\***\httpdocs\wp-includes\wp-db.php on line 992
PHP Warning: Missing argument 2 for wpdb::prepare(), called in D:\Hosts\***\httpdocs\wp-content\plugins\mylinksdump\myLinksDump.php on line 342 and defined in D:\Hosts\***\httpdocs\wp-includes\wp-db.php on line 992
خط بولد شده مربوط به ارور myLinksDump.php on line 328 هست:
)");
if(isset($_POST['link_title']) && isset($_POST['link_url'])) {
if (!empty($_POST['link_title']) && !empty($_POST['link_url'])) {
//This is for updating previous links.
if ($_POST['action_type'] == 1){
$sql_query = $wpdb->prepare("UPDATE ".$table." SET
title = '".$_POST['link_title']."', url='".$_POST['link_url']."',description='".strip_tags($_POST['link_description'])."'
, approval='".$_POST['link_approval']."', delicious_status='0' WHERE link_id =".$link_id." LIMIT 1");
}else{
$sql_query = $wpdb->prepare("INSERT INTO ".$table." (link_id, title, url, description, visits, date_added, approval, delicious_status)
VALUES (
NULL , '".$_POST['link_title']."', '".urldecode($_POST['link_url']) ."', '".strip_tags($_POST['link_description'])."', '0', '".time()."', '1', '0'
)");
}
خط بولد شده مربوط به myLinksDump.php on line 342 هست:
$sql = $wpdb->prepare("SELECT count(url) FROM ".$table." WHERE url = '".$_POST['link_url']."'");
if ($edit_mode == 1){
$wpdb->query($sql_query);
?>
<div class="updated fade"><p><strong><?php _e('Link saved.','myLinksDump'); ?></strong></p></div>
<?php
}else{
if ($ld_repeated_link == 0){
$sql = $wpdb->prepare("SELECT count(url) FROM ".$table." WHERE url = '".$_POST['link_url']."'");
$repeated_urls = $wpdb->get_var($sql);
if ($repeated_urls < 1 ){
$wpdb->query($sql_query);
?>
خط بولد شده مربوط به wp-db.php on line 992 هست:
function prepare( $query, $args ) {
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 );
}
ممنون.