প্লাগইন ডাটাবেস সারণিতে একটি সূচক কীভাবে যুক্ত করবেন


10

আমি যে প্লাগইনটি বিকাশ করছি তার জন্য কিছু অতিরিক্ত সারণী তৈরি করেছি এবং এই টেবিলগুলিতে সূচীগুলি যুক্ত করা দরকার।

এটি করার জন্য ওয়ার্ডপ্রেস উপায় কী?

ব্যবহারটি dbDelta()কাজ করছে বলে মনে হচ্ছে না এবং আমি লগগুলিতে কোনও ত্রুটি দেখছি না।

উত্তর:


4

আপনি wpdb :: ক্যোয়ারী () সহ ডেটা সংজ্ঞা বিবরণী সহ নির্বিচারে এসকিউএল স্টেটমেন্টগুলি কার্যকর করতে পারেন , উদাহরণস্বরূপ

function
create_index ()
{
    global $wpdb ;

    $sql = "CREATE INDEX my_index ON {$wpdb->prefix}my_table (my_column)" ;

    $wpdb->query ($sql) ;

    return ;
}

দ্রষ্টব্য: কারণ নির্বিচারে এসকিউএল সম্পাদন$wpdb->query() করতে পারে , আপনি যে বিবৃতিটি এতে পাস করেছেন তাতে যদি কোনও ব্যবহারকারীর ইনপুট থাকে তবে আপনার এসকিউএল ইনজেকশন আক্রমণ থেকে রক্ষা করার জন্য ডাব্লুপিডিবি :: প্রস্তুত () ব্যবহার করা উচিত ।

তবে এটি প্রশ্ন উত্থাপন করে: আপনি কীভাবে আপনার প্লাগইন-নির্দিষ্ট সারণী তৈরি করলেন? "ম্যানুয়ালি" বা প্রোগ্রাম্যাটিকভাবে? প্রোগ্রামগতভাবে, আপনি ব্যবহার না $wpdb->query()? যদি আপনি এটি "ম্যানুয়ালি" করেন তবে অবশ্যই আপনার প্লাগইন অ্যাক্টিভেশন অনুসারে সারণীগুলি (এবং তাদের সূচিগুলি) তৈরি করা উচিত।

ব্যক্তিগত টেবিল তৈরি করার মতো জিনিসগুলি করতে প্লাগইন অ্যাক্টিভেশন (এবং / অথবা নিষ্ক্রিয়করণ এবং আনইনস্টল) এ কীভাবে ঝুঁকতে হয় তার জন্য এই অন্যান্য ডাব্লুপিএসই প্রশ্নের দুর্দান্ত উত্তর দেখুন ।


5 মাস পুরাতন হলেও এই প্রশ্নের উত্তর দেওয়ার জন্য ধন্যবাদ আমি এটি করে শেষ করেছি তবে নিশ্চিত ছিলাম না এটি "সঠিক উপায়" কিনা if পরের বার যখন আমি এটি করার চেষ্টা করব তখন একটি বড় সহায়তা হবে।
দুধ

@ মিল্ক আমার আনন্দ আমি বুঝতে পেরেছিলাম আপনি ইতিমধ্যে আপনার সমস্যার সমাধান করেছেন বা ছেড়ে দিয়েছেন :-) আমি একই উত্তর দিয়েছি এবং ডাব্লুপিএসই অনুসন্ধান করে আপনার প্রশ্নটি সন্ধান করতে আসা অন্যদের সহায়তা করার জন্য আমি উত্তরটি দিয়েছি (আপনি জিজ্ঞাসা করার পরেও 5 মম)।
পল 'স্প্যারো হক' বিরন

3

একটি প্রাথমিক কী এর শীর্ষে ডিবিডেল্টা ব্যবহার করে, আপনি অন্যান্য কলামগুলির জন্য একটি সূচক তৈরি করতে KEY শব্দটি অন্তর্ভুক্ত করতে পারেন:

আপনার মূল শব্দটি KEY এর পরিবর্তে INDEX সমার্থক শব্দ ব্যবহার করা উচিত এবং আপনার কমপক্ষে একটি KEY অন্তর্ভুক্ত করতে হবে।

মূলত স্কিমা.এফপি থেকে উদাহরণ:

CREATE TABLE $wpdb->termmeta (
  meta_id bigint(20) unsigned NOT NULL auto_increment,
  term_id bigint(20) unsigned NOT NULL default '0',
  meta_key varchar(255) default NULL,
  meta_value longtext,
  PRIMARY KEY  (meta_id),
  KEY term_id (term_id),
  KEY meta_key (meta_key($max_index_length))
) $charset_collate;

উত্স: কোডেক্স - প্লাগইনগুলির সাথে সারণী তৈরি করা

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.