2009-06-20 9 views
9

मेरे पास एक बुनियादी समस्या है: मैं अपने SQLite डेटाबेस में केकेपीएचपी को कनेक्ट नहीं कर सकता। हैरानी की बात है, मुझे इंटरनेट पर इसके बारे में बहुत सारी जानकारी नहीं मिली, हालांकि मैं गलत कीवर्ड देख रहा हूं।मैं केकेपीएचपी को SQLite डेटाबेस से कैसे जोड़ूं?

var $default = array(
     'driver' => 'sqlite', 
     'connect' =>'sqlite_popen', 
     'persistent' => false, 
     'host' => 'localhost', 
     'port' => '', 
     'login' => '', 
     'password' => '', 
     'database' => '/home/MY_USER_NAME/public_html/my_database.sqlite', 
     'schema' => '', 
     'prefix' => '', 
     'encoding' => '' 
); 

फिर भी, केक केवल कहते हैं, "केक नहीं डेटाबेस से कनेक्ट करने में सक्षम है": फिर भी, यह मेरे कनेक्शन कोड है। साथ ही, मुझे नहीं पता कि "वास्तविक" लॉग कहां देखना है (यानी, SQLite "ड्राइवर" से लौटाई गई त्रुटि)। तो, मैंने एक मृत अंत मारा। मुझे क्या करना चाहिए?

अग्रिम धन्यवाद।

+0

डाउनवोट को समझें नहीं: हालांकि एसओ की नीति यह थी कि कोई "बहुत स्पष्ट प्रश्न" नहीं था। –

उत्तर

8

CakePHP 2.0 के अनुसार, स्क्लाइट 3 बॉक्स से बाहर समर्थित है।

सुनिश्चित करें कि SQLite अपने PHP विन्यास में सक्षम किया गया है हो सकता है:

phpinfo(); 

app/Config/databases.php अंदर आप इस तरह SQLite डेटाबेस को परिभाषित कर सकते हैं:

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

अब आप अपने app/webroot/my_database_name.sqlite फ़ाइल की जाँच करें।

1

क्या आप SQLite 3 डेटाबेस से कनेक्ट करने का प्रयास कर रहे हैं? CakePHP अभी तक उनका समर्थन नहीं करता है।

इसके अलावा, आप अपने पथ में अग्रणी / जोड़ने का प्रयास करना चाहेंगे। ऐसा लगता है कि आप एक पूर्ण पथ करने की कोशिश कर रहे हैं लेकिन अग्रणी स्लैश के बिना यह ऐसा करने वाला नहीं है जो आपको लगता है कि यह करने जा रहा है।

+0

जोड़ा गया स्लैश जोड़ा गया, बस पथ टाइप करते समय इसे भूल गया (मैंने निर्दोषों की रक्षा के लिए नामों के साथ पथ को फिर से हटा दिया)। मैंने SQLite 3 समस्या के बारे में सुना है, लेकिन मुझे नहीं पता कि मेरे द्वारा बनाए गए डेटाबेस का संस्करण क्या है, आईडीई में यह विकल्प नहीं देखा (मैं फ़ायरफ़ॉक्स के एक्सटेंशन SQLite प्रबंधक का उपयोग कर रहा हूं)। मैं इसे कैसे ढूंढूं? –

+0

"चयन करें sqlite_version()" आपको उपयोग में SQLite इंजन का संस्करण दिखाएगा। –

+0

SQLite प्रबंधक को छोड़कर, SQLite 2 डेटाबेस को डाउनलोड करके, मेरे हाथ गंदे और डेटाबेस को कोडिंग करके समस्या हल करें। –

6

SQLite3 को आधिकारिक तौर पर केकेपीएचपी द्वारा समर्थित नहीं है ... शायद क्योंकि इस बग/एन्हांसमेंट कार्यों से जुड़ी फाइल।

https://trac.cakephp.org/ticket/3003

ले लो फ़ाइल का नवीनतम संस्करण, किसी भी नए पैच के साथ इसे अद्यतन अपने cake/libs/model/datasources/dbo निर्देशिका में अपलोड करने और अपने database.php फ़ाइल में कॉन्फ़िगर करते हैं।

मैं एक फ़ाइल dbo_sqlite3.php

मेरे विन्यास फाइल बुलाया का उपयोग कर रहा चालक की स्थापना के लिए इस का उपयोग करता है:

'driver' => 'sqlite3', 
+0

यह जानना अच्छा है कि, मैं इसे भविष्य की परियोजनाओं में उपयोग कर सकता हूं! धन्यवाद! –

6

कैसे SQLite3 साथ CakePHP करने के लिए:

Requirments:

कदम:

अनपैक datasources जगह में प्लगइन।

संपादित dbo_sqlite3.php और जोड़ें:

App::import('Datasource','DboSource'); 

... बस 'क्लास' परिभाषा से पहले।

अपने database.php फ़ाइल में निम्न कॉन्फ़िगरेशन का उपयोग करें:

var $default = array(
    'datasource' => 'Datasources.DboSqlite3', 
    'login' => '', 
    'password' => '', 
    'database' => '/full/path/to/db.sqlite'); 

हो गया।

+0

हाँ, अब तक यह पहले से ही आसान है = डी समस्या यह थी कि जब यह प्रश्न पोस्ट किया गया था तो ये उपलब्ध नहीं थे। वैसे भी संदर्भ के लिए वोटिंग। =) –

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