Tôi đang cố gắng chèn dữ liệu vào cơ sở dữ liệu SQlite3 của tôi (điều này hoạt động thông qua dòng lệnh). Tôi đã cung cấp cho các tập tin data1.db 777 và vẫn còn nó nói rằng nó không thể mở tập tin.Không thể ghi vào tệp cơ sở dữ liệu chmod 777 trên SQlite3 qua php 5.3.0
tôi nhận được lỗi này:
Warning: SQLite3::exec() [sqlite3.exec]: unable to open database file in /var/www/test.php on line 3
Sử dụng mã này:
$db = new SQLite3('./data1.db');
$db->exec("INSERT INTO table1 (fileName) VALUES ('test.txt')");
Nhưng điều lạ là tôi có thể đọc từ cơ sở dữ liệu: (làm việc này)
print_r($db->querySingle('SELECT fileName FROM table1', true));
Tôi đang chạy PHP 5.3.0
Không gian trên thiết bị? – LiraNuna
Bạn không cần phải thực thi quyền trên cơ sở dữ liệu - nó không phải là một tập lệnh hoặc chương trình thực thi. Bạn thường nên tránh truy cập viết công khai - điều đó có nghĩa là bạn không quan tâm đến việc phá hủy cơ sở dữ liệu của bạn bất cứ lúc nào (vì ai cũng có thể làm điều đó nếu tệp có quyền ghi công khai). Vì vậy, tối đa bạn nên sử dụng 666 và tốt nhất là 664 hoặc nhiều quyền hạn nghiêm ngặt hơn. –
Vâng tôi biết, tôi đã thử nghiệm nó để xem đó có phải là lỗi hay không. (may mắn là không). Đã thay đổi quyền của nó trở lại 644 và chuyển nó ra ngoài thư mục www. – Mint