Neden SEÇ kullanmak ancak PHP bir SQLite veritabanı üzerinde takamıyorum?

2 Cevap php

PHP bir SQLite veritabanından bilgi almak mümkün, ama buna yazmak değil. Örneğin, bu kod mükemmel çalışıyor:

$db = new PDO("sqlite:foo.db");
$rowCount = $db->query("SELECT COUNT(*) FROM tblname;")->fetchColumn(0);
echo $rowCount; // works as it should

Ancak, aşağıdaki bir, 'veritabanı dosyası açılamıyor' hatası sonuçları pasajı:

$db = new PDO("sqlite:foo.db");
$db->exec("INSERT INTO tblname VALUES(NULL, 'val1', 'val2');") or die(print_r($db->errorInfo(), true));

Ben oldukça PHP daha komut satırından yukarıdaki INSERT gerçekleştirmek, ben beklenen sonuçları (tblname yeni bir satır) olsun:

$ sqlite3 foo.db
sqlite> INSERT INTO tblname VALUES(NULL, 'val1', 'val2');

Bu PDO'yu (ya da bu konuda SQLite) kullanarak benim ilk kez bu kadar herhangi bir yardım büyük mutluluk duyacağız.

2 Cevap

PHP betiği çalıştıran kullanıcı foo.db. yazma iznine sahip olduğunu kontrol edin

Ayrıca (Yanılıyorsam bellekten, beni düzeltin) kullanıcı foo.db içeren dizine yazma izni gerekir, ya da başka SQLite3 bir o kadar da kullanışlı değil hata mesajı atmak olacaktır.

Sen probobly SQLLite dosyasına hiçbir yazma acccess var. Eğer PDO::errorInfo form PDO'yu olsun hata mesajı kontrol edin