निम्नलिखित को धयान मे रखते हुए:
आपका प्लगइन एक वर्डप्रेस नेटवर्क पर उपयोग किया जाता है, जो प्रत्येक साइट के लिए अलग-अलग तालिका उपसर्गों का उपयोग करता है। आपका प्लगइन 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 );
वर्डप्रेस लगातार बदल रहा है। आज जो "काम करता है" हो सकता है वह कल काम न करे। इसलिए एपीआई कार्य हैं। वर्डप्रेस डेवलपर्स सुनिश्चित करेंगे कि सार्वजनिक एपीआई व्यवहार सुसंगत है (या वे फ़ंक्शन को ह्रास करेंगे)। यदि आप आंतरिक विधि कॉल का उपयोग शुरू करते हैं क्योंकि यह 'उस तरह से तेज़' है तो यह आमतौर पर आपको काटने के लिए वापस आ जाएगा। सॉफ्टवेयर में बहुत कम सच्चे शॉर्टकट हैं - वे अभी से आवश्यक कार्य को बाद में स्थानांतरित करते हैं, और आपके क्रेडिट कार्ड की तरह "बाद में" आमतौर पर अधिक खर्च होते हैं।