2011-04-01 5 views
5

मैंने PHP पीडीओ का उपयोग कर डेटाबेस कनेक्ट करने के लिए बहुत कुछ करने की कोशिश की है। मुझे बहुत सारे नमूने मिल गए हैं, मुझे यकीन नहीं है कि समस्या क्या थी।PHP का उपयोग कर एक एसक्लाइट डेटाबेस को कैसे कनेक्ट करें?

नीचे मेरी कोड

<?php 
    try 
    { 
     // $db = new PDO('sqlite:sampleDB.db3'); 
     // $db = new SQLiteDatabase('sampleDB.sqlite', 0666, $error); 
     $db = new PDO('sqlite:sampleDB.sqlite'); 
    } 
    catch(PDOException $e) 
    { 
     echo $e->getMessage(); 
    } 
?> 

मैं एक कनेक्शन को खोलने के लिए रास्ते से बहुत कोशिश की है। कृपया मुझे सही तरीका बताएं ...

+0

क्या आपको कोई त्रुटि/संदेश मिला है? –

+0

आपको क्या त्रुटि मिलती है? – SergeS

+0

यह है कि मुझे $ db = new PDO ('sqlite: sampleDB.sqlite') के बाद कुछ सितारे हैं या नहीं; लाइन? अगर नहीं तो मुझे पार्सिंग असफल हो जाएगी ... – yent

उत्तर

1

सबसे पहले, आप यह सुनिश्चित करना चाहते हैं कि आपको SQLite से कनेक्ट करने के लिए PHP कॉन्फ़िगर किया गया है - यह सुनिश्चित करने के लिए कि आपके पास SQLite समर्थन सक्षम है, phpinfo() का उपयोग करें।

अगला, आप कनेक्ट करने और SQLite डेटाबेस के विरुद्ध क्वेरी करने का प्रयास करते समय उचित वाक्यविन्यास का उपयोग करना चाहेंगे। PHP Manual for sqllite के अनुसार उदा।

<?php 

    if ($db = sqlite_open('sampleDB', 0666, $sqliteerror)) { 
     $result = sqlite_query($db, 'select bar from foo'); 
     var_dump(sqlite_fetch_array($result)); 
    } else { 
     die($sqliteerror); 
    } 

?> 
+0

आज़माएं मैंने स्मृति में डेटाबेस को जोड़ने/बनाने का प्रयास किया है। यह काम करता हैं। $ डीबी = नई पीडीओ ("एसक्लाइट :: मेमोरी"); – ayathas

+0

उसी कोड को मैंने निष्पादित किया है। मुझे 'डेटाबेस खोलने में असमर्थ' पर त्रुटि संदेश मिल रहा है – ayathas

+0

क्या आपने यह सुनिश्चित करने के लिए phpinfo() की जांच की है कि SQLLite समर्थन सक्षम है? –

5

मैंने पीडीओ चालक के साथ छोड़ दिया, और इसी कारण से sqlite3 मॉड्यूल का उपयोग किया।

sqlite3 मॉड्यूल के साथ

:

class DB extends SQLite3 
{ 
     function __construct($file) 
     { 
      $this->open($file); 
     } 
} 

$db = new DB('sampleDB.sqlite'); 

मैं जानता हूँ कि यह आपकी समस्या के लिए एक समाधान नहीं है, लेकिन कुछ भी नहीं काम करता है, यह उपयोगी हो सकता है।

+0

इस प्रकार के कनेक्शन का उपयोग कर डेटाबेस से आप कैसे क्वेरी करते हैं? – ST3

+0

http://php.net/manual/en/book.sqlite3.php – petermolnar

1

निर्देशिका एसक्यूएल फ़ाइल स्थित है जो सर्वर लिखने योग्य होना चाहिए। केवल SQLite के लिए अलग निर्देशिका बनाने का प्रयास करें और इसे उचित पहुंच दें। यूनिक्स में आप chmod 777 dirname चलाकर ऐसा कर सकते हैं। साथ ही, अपने डीएसएन को 'sqlite:dirname/sampleDB.sqlite' में संशोधित करें।

+0

अभी भी मुझे त्रुटि संदेश मिल रहा है। SQLSTATE [HY000] [14] डेटाबेस फ़ाइल – ayathas

+0

खोलने में असमर्थ इस प्रकार मैंने अपना कोड बदल दिया। $ dbh = नया पीडीओ ('स्क्लाइट: myDir/sampleDB.sqlite'); – ayathas

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