উত্তর:
আপনি 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()
? যদি আপনি এটি "ম্যানুয়ালি" করেন তবে অবশ্যই আপনার প্লাগইন অ্যাক্টিভেশন অনুসারে সারণীগুলি (এবং তাদের সূচিগুলি) তৈরি করা উচিত।
ব্যক্তিগত টেবিল তৈরি করার মতো জিনিসগুলি করতে প্লাগইন অ্যাক্টিভেশন (এবং / অথবা নিষ্ক্রিয়করণ এবং আনইনস্টল) এ কীভাবে ঝুঁকতে হয় তার জন্য এই অন্যান্য ডাব্লুপিএসই প্রশ্নের দুর্দান্ত উত্তর দেখুন ।
একটি প্রাথমিক কী এর শীর্ষে ডিবিডেল্টা ব্যবহার করে, আপনি অন্যান্য কলামগুলির জন্য একটি সূচক তৈরি করতে 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;