নিম্নোক্ত বিবেচনা কর:
আপনার প্লাগইন একটি ওয়ার্ডপ্রেস নেটওয়ার্কে ব্যবহৃত হয়, যা প্রতিটি সাইটের জন্য বিভিন্ন টেবিলের উপসর্গ ব্যবহার করে। আপনার প্লাগইন একই ডাটাবেসে 836 টি ভিন্ন সাইটে একই সাথে চলতে পারে। wp_385677_liveshoutbox
পুরোপুরি যুক্তিসঙ্গত সারণীর নাম।
আপনার প্লাগইন এমন কোনও ব্যবহারকারী দ্বারা ইনস্টল করা হয়েছে যার সুরক্ষার কিছু ধারণা রয়েছে এবং select * from wp_users
সিস্টেমটিতে ইনজেকশনের চেষ্টা করে এমন বটকে ব্লক করতে টেবিলের উপসর্গটি পরিবর্তন করে ফেলেছে । এমনকি যদি তারা একটি নতুন দুর্বলতা খুঁজে পায় তবে এটি কার্যকর হবে না।
হার্ডকোডিং টেবিলের নামগুলির মতো শর্টকাট নেওয়া কোনও পণ্য আপ করা এবং চালানোর জন্য ভাল উপায়, তবে এটি প্রকাশের পক্ষে ভাল উপায় নয়। খুব অল্প সময়ে প্লাগইনটিতে এটিতে "কাজ করে না" মন্তব্যগুলির একটি গাদা থাকবে, সবচেয়ে খারাপ ক্ষেত্রে আপনি অন্য কারও সাইটের ভঙ্গ করবেন।
যদি আমার একটি জটিল প্রশ্ন থাকে এবং আমি লেখার ব্যথা মোকাবেলা করতে চাই না তবে 'select foo from ' . $wpdb->prefix . '_mytable left join ' . $wpdb->prefix . '_mytablemeta on ' . $wpdb->prefix . '.ID = ' . $wpdb->prefix . '.meta_id ....
আপনি প্রতিস্থাপনগুলি ব্যবহার করতে পারেন। উদাহরণ স্বরূপ:
$query = 'select foo from %table% left join %meta% on %table%.ID = %meta%.meta_id ... ';
$change = array (
'%table%' => $wpdb->prefix . '_mytable',
'%meta%' => $wpdb->prefix . '_mytablemeta'
);
$sql = str_replace( array_keys( $change ), array_values( $change ), $query );
$results = $wpdb->get_results( $sql );
ওয়ার্ডপ্রেস নিয়মিত পরিবর্তন হয়। আজ কী "কাজ করে" কালকে কাজ করবে না। এজন্য এপিআই ফাংশন রয়েছে। ওয়ার্ডপ্রেস বিকাশকারীরা নিশ্চিত করবে যে পাবলিক এপিআই আচরণটি সামঞ্জস্যপূর্ণ (বা তারা ফাংশনটি অবমূল্যায়ন করবে)। আপনি যদি অভ্যন্তরীণ পদ্ধতিতে কলগুলি ব্যবহার করতে শুরু করেন কারণ এটি 'দ্রুত সেই পথে' এটি সাধারণত আপনাকে কামড়ানোর জন্য ফিরে আসবে। সফ্টওয়্যারটিতে খুব কম সত্যিকারের শর্টকাট রয়েছে - এগুলি কেবল প্রয়োজনীয় কাজটি এখন থেকে পরের দিকে সরিয়ে নিয়ে যায় এবং আপনার ক্রেডিট কার্ডের মতো "পরে" সাধারণত আরও বেশি খরচ হয়।