2012-01-05 7 views
5

मैंने वेब पर बहुत सारे शोध किए लेकिन मुझे कुछ भी नहीं मिला जो मुझे कोडिनेटर में पीडीओ का उपयोग करने में मदद कर सकता था। मैंने सीआई 2.1.0 (मुझे लगता है) के बदलाव के रूप में देखा कि पीडीओ चालक को फ्रेमवर्क में जोड़ा गया था। मैं एक database.php कॉन्फ़िग फ़ाइल है कि इस तरह दिखता है के साथ अब समाप्त हो गया:कोडिनेटर पीडीओ एकीकरण

$db['default']['hostname'] = 'mysql:host=myhostname;port=myport'; 
$db['default']['username'] = 'myusername'; 
$db['default']['password'] = 'mypassword'; 
$db['default']['database'] = 'mydb'; 
$db['default']['dbdriver'] = 'pdo'; 

तो अब (ऊपर -.- काम करने के बाद बर्बाद बहुत समय टुकड़ा पाने के लिए) मैं कनेक्शन के बारे में कोई त्रुटि प्राप्त , लेकिन अभी कितना जल्दी निकालना है? मैं समझ नहीं सकता कि वाक्यविन्यास क्या काम करेगा और प्रश्न कैसे बनाएं। किसी के पास संकेत हैं?

पुनश्च:

  1. सीआई 2.x + (किया)
  2. : यदि आप के बारे में मैं क्यों ci में पीडीओ जरूरत wordering कर रहे हैं, इस सवाल का जवाब मेरे मालिक मेरे साथ एक संरचित वातावरण का निर्माण करना चाहते है चतुर 3 (किया)
  3. PHPUnit (अभी तक)
  4. पीडीओ (अभी तक नहीं)

इसलिए भी PHPUnit एकीकृत के लिए किसी भी संकेत का जवाब करने के लिए स्वतंत्र महसूस करता है यदि आपके पास। अग्रिम में

उत्तर

7

आप पीडीओ का उपयोग उसी तरह करते हैं जैसे आप CodeIgniter में किसी भी अन्य डेटाबेस ड्राइवर का उपयोग करते हैं। यदि आप अभी भी अनिश्चित हैं तो मैं Database Class पर दस्तावेज़ पढ़ने की अनुशंसा करता हूं।

आप स्पष्ट रूप से क्वेरी लिखकर मानक प्रश्न जारी कर सकते हैं या आप Active Record Class (जो एक क्वेरी निर्माता का अधिक है) का उपयोग कर सकते हैं।

यहाँ कुछ उदाहरण हैं:,

// Standard query 
$results = $this->db->query('SELECT name, title, email FROM my_table'); 

// Active record 
$this->db->select('name, title, email'); 
$results = $this->db->get('my_table'); 

PHPUnit एकीकृत करने के लिए के रूप में https://github.com/cmillr/CI-PHPUnit पर एक नजर है (मैं इसे अपने आप परीक्षण नहीं किया है) या CodeIgniter forums चारों ओर देखो। मैंने कोडइग्निटर के साथ PHPUnit को एकीकृत करने के विषयों का एक टन देखा है।

+0

वास्तव में PHPUnit संकेत के लिए Ty !!!! आपने मुझे बहुत मदद की है, मैंने phpunit के लिए smth की तलाश में घंटों खो दिए हैं, लेकिन मुझे केवल पुरानी सीआई पुस्तकालयों आदि मिलती हैं ... आप सही जगह पर, मुझे पता नहीं क्यों घर पर यह ठीक काम करता है, लेकिन कामों में हंटर - > क्वेरी या एआर काम करने लगता है, मुझे गहराई से जांच करनी चाहिए। हालांकि फिर से एक्सडी – th3n3rd

+1

मैंने एक्सडीबग का उपयोग किया कि सीआई क्या करता है जब मैं सक्रिय रिकॉर्ड या क्वेरी विधि दोनों को कॉल करता हूं, और दोनों स्थितियों में सीआई पीडीओ "तैयार" कथन lol का उपयोग नहीं करता है ... यदि सीआई नहीं है तो पीडीओ ड्राइवर का उपयोग करने के क्या फायदे हैं। अंदर pdo समारोह का उपयोग करें !!! मैं विशेष रूप से पीडीओ का उपयोग करना चाहता हूं क्योंकि इसमें एक क्वेरी बाध्यकारी विधि है (कोडिनेटर की तरह नहीं)। – th3n3rd

+0

यह बहुत पुराना है लेकिन क्वेरी तैयार करना सुनिश्चित करें। http://ellislab.com/forums/viewthread/218455/ – RaGe10940

8

आप अपने config एक छोटे से बदलने की जरूरत है:

'dsn' => 'mysql:host=localhost;dbname=codeigniter', 
//'hostname' => 'localhost', 
'username' => 'codeigniter', 
'password' => 'codeigniter', 
'database' => 'codeigniter', 

सूचना हम dsn, नहीं होस्ट नाम का उपयोग करें।

उसके बाद, बस का उपयोग अपने $this->db-> की तरह आप हमेशा करते हैं - पीडीओ चालक पीडीओ तरीकों

एक छोटी सी दिनांक के लिए सब कुछ अनुवाद कर देगा, लेकिन विषय स्पष्ट व्याख्या & डॉक्स कमी है तो मैं यह लिखा - आशा है कि यह लोगों के लिए स्पष्ट में मदद करता है:

http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo

+1

लोन लिंक को एक खराब उत्तर माना जाता है (देखें [faq # हटाना]) क्योंकि यह स्वयं से व्यर्थ है और ** लक्ष्य संसाधन भविष्य में जीवित रहने की गारंटी नहीं है **। [यह बेहतर होगा] (http://meta.stackexchange.com/q/8259) यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें। – j0k

+2

नोट किया गया और अपडेट किया गया – jmadsen