2011-11-07 14 views
13

मैंCakePHP साथ SQLite3 का उपयोग करते हुए 2.0

इन सवालों मैंने देखा कि यह करने के लिए है कि CakePHP 1.3 में संभव है में CakePHP 2.0 के साथ SQLite3 को चलाने के लिए कोशिश कर रहा हूँ:
- Using Sqlite3 with CakePHP
- How do I connect CakePHP to a SQLite database?

हालांकि , समाधान केकपीएचपी 2.0 के लिए मान्य नहीं हैं।

मैंने फ़ाइल 'database.php' को कॉन्फ़िगर किया और मुझे केकेपीएचपी के शुरुआती पृष्ठ पर सफलता मिली। यह डेटाबेस से कनेक्ट करने में सक्षम था (लेकिन मुझे नहीं पता कि .db3 डेटाबेस फ़ाइल कहां मिलें)।

मैं निम्नलिखित कोड का इस्तेमाल किया:

public $default = array(
    'datasource' => 'Database/Sqlite', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => '', 
    'password' => '', 
    'database' => 'cake_blog_tutorial', 
    'prefix' => '', 
    //'encoding' => 'utf8', 
); 

मैं पता लगाने के लिए कोशिश कर रहा हूँ:

  1. मेरे cake_blog_tutorial.db3 फ़ाइल
  2. रखा जाना चाहिए डेटा स्रोत के लिए अलग अलग है SQLite3, उदाहरण के लिए 'डेटाबेस/स्क्लाइट 3'?

आपकी मदद के लिए धन्यवाद!

+2

आमतौर पर webroot फ़ोल्डर में है .. अपनी फ़ाइल के लिए वहां देखने का प्रयास करें, मुझे केक 2.0 में भी पता नहीं है क्योंकि मैंने इसका परीक्षण नहीं किया है, लेकिन 1.3 में आपको sqlite3 का उपयोग करने की आवश्यकता है क्योंकि दूसरे ने पिछले संस्करणों में sqlite3 का समर्थन नहीं किया है ... आप बदल सकते हैं डेटाबेस ../cake_blog_tutorial पर यह वेबूट (बाहरी से एक्सेस को रोकने के लिए) के बजाय आपके ऐप फ़ोल्डर में दिखाई देता है – api55

+0

धन्यवाद, Api55! आप मेरे प्रश्न का उत्तर देते हैं! फ़ाइल स्वचालित रूप से वेबूट फ़ोल्डर में बनाई गई है (या आपके द्वारा चुने गए अन्य रिश्तेदार फ़ोल्डर, जैसे कि आपके उदाहरण में)। केकपीएचपी 'डाटाबेस/स्क्लाइट' का उपयोग करके SQLite3 का समर्थन करता है। आप इसे lib \ Cake \ Model \ Datasource \ डेटाबेस \ Sqlite.php –

उत्तर

17

संक्षेप में, जवाब है कि CakePHP 2.0 में sqlite3 डेटाबेस निम्नलिखित विन्यास जैसी कोई चीज़ लेना है:

public $default = array(
     'datasource' => 'Database/Sqlite', 
     'persistent' => false, 
     'database' => 'database_name', 
     'prefix' => '', 
     //'encoding' => 'utf8', 
); 

SQLite फ़ाइल फिर स्वचालित रूप से webroot निर्देशिका में बनाई गई है (जब तक आप एक रिश्तेदार पथ पहले जोड़ें डेटाबेस नाम)। , उदाहरण के लिए ": स्मृति":

संयोग से, आप के लिए डेटाबेस नाम बदलकर में स्मृति SQLite डेटाबेस (परीक्षण प्रयोजनों के लिए, उदाहरण के लिए) का उपयोग कर सकते

public $default = array(
     'datasource' => 'Database/Sqlite', 
     'persistent' => false, 
     'database' => ':memory:', 
     'prefix' => '', 
     //'encoding' => 'utf8', 
); 
+0

खोलने को देख सकते हैं यह समाधान केकपीएचपी 3 के लिए भी मान्य है – jjz

संबंधित मुद्दे