2013-05-24 28 views
12

Bir SQLite veritabanına sahibim ve PHP ile bağlanmaya çalışıyorum. Bu kullanıyorum budur:PHP ile bir SQLite veritabanına nasıl bağlanırım?

<?php 
    $dbconn = sqlite_open('combadd.sqlite'); 

    if ($dbconn) { 
     $result = sqlite_query($dbconn, "SELECT * FROM combo_calcs WHERE options='easy'"); 
     var_dump(sqlite_fetch_array($result, SQLITE_ASSOC)); 
    } else { 
     print "Connection to database failed!\n"; 
    } 
?> 

Ancak, bu hatayı alıyorum:

Sorun nedir

Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a database in C:\xampp\htdocs\deepthi\combadd\combadd_db.php on line 4
Connection to database failed!

ve nasıl düzeltebilirim?

+0

Merhaba @user getirme ve ekran kayıtları nasıl gösterir YANİ. Ben * kesinlikle * PDO kullanmanızı öneririm - bu (ya da ben) kendiniz (kendimiz) ile gelecektir ne olursa olsun, gerçekten kolay, esnek ve daha güvenli. http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/ – Ben

cevap

24

deneyin yerine sqlite_open ait PDO kullanımı:

$dir = 'sqlite:/[YOUR-PATH]/combadd.sqlite'; 
$dbh = new PDO($dir) or die("cannot open the database"); 
$query = "SELECT * FROM combo_calcs WHERE options='easy'"; 
foreach ($dbh->query($query) as $row) 
{ 
    echo $row[0]; 
} 
+0

Bu muhteşem Antonio idi. excel sayfasından veriyi php kullanarak sqlite'ye eklemem gerekiyor. lütfen bana yardım edebilir misin? teşekkürler – user2412936

+0

Burada bazı örnekler bulabilirsiniz: http://www.if-not-true-then-false.com/2012/php-pdo-sqlite3-example/. Ayrıca, bir veritabanına bağlanma, ekleme, güncelleme, kayıtları silme gibi tekrar eden görevleri yapmaya yardımcı olacak bir çerçeve kullanmayı düşünmelisiniz. Laravel'e bir göz atın: http://four.laravel.com/ –

+0

Biri xls verilerini php kodu – user2412936

1
<?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); 
    } 

?> 

sorununuza) (

One başka bir çözüm, emin sqlite destek sağlamak olduğundan emin olun phpinfo kontrol etmektir: yerine Sqlite3 modülünü kullanarak

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

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

Veritabanı Bağlantısı Yapılıyor Aşağıdaki PHP kodu varolan bir veritabanına nasıl bağlanacağınızı gösterir. Veritabanı mevcut değilse, o zaman oluşturulacak ve son olarak bir veritabanı nesnesi döndürülecektir.

<?php 
    class MyDB extends SQLite3 
    { 
     function __construct() 
     { 
     $this->open('combadd.sqlite'); 
     } 
    } 
    $db = new MyDB(); 
    if(!$db){ 
     echo $db->lastErrorMsg(); 
    } else { 
     echo "Opened database successfully\n"; 
    } 
?> 

Şimdi, dizinde test.db'yi geçerli dizinde oluşturmak için yukarıdaki programı çalıştıralım. Yolunuzu ihtiyacınıza göre değiştirebilirsiniz. Veritabanı başarıyla sonra oluşturulursa o mesajın aşağıdaki verecektir:

Open database successfully 

SEÇ Operasyonu

ardından PHP programı, hoş geldiniz

<?php 
    class MyDB extends SQLite3 
    { 
     function __construct() 
     { 
     $this->open('combadd.sqlite'); 
     } 
    } 
    $db = new MyDB(); 
    if(!$db){ 
     echo $db->lastErrorMsg(); 
    } else { 
     echo "Opened database successfully\n"; 
    } 

    $sql =<<<EOF 
     SELECT * FROM combo_calcs WHERE options='easy'; 
EOF; 

    $ret = $db->query($sql); 
    while($row = $ret->fetchArray(SQLITE3_ASSOC)){ 
     echo "ID = ". $row['ID'] . "\n"; 
    } 
    echo "Operation done successfully\n"; 
    $db->close(); 
?> 
İlgili konular