J'essaie d'insérer des données dans ma base de données SQlite3 (cela fonctionne via la ligne de commande). J'ai donné le droit au fichier data1.db 777 et il dit qu'il est incapable d'ouvrir le fichier.Impossible d'écrire dans un fichier de base de données chmod 777 sur SQlite3 via php 5.3.0
Je reçois cette erreur:
Warning: SQLite3::exec() [sqlite3.exec]: unable to open database file in /var/www/test.php on line 3
En utilisant ce code:
$db = new SQLite3('./data1.db');
$db->exec("INSERT INTO table1 (fileName) VALUES ('test.txt')");
Mais la chose étrange est que je peux lire à partir de la base de données: (cela fonctionne)
print_r($db->querySingle('SELECT fileName FROM table1', true));
Je cours PHP 5.3.0
Espace sur l'appareil? – LiraNuna
Vous ne devriez pas avoir besoin d'une autorisation d'exécution sur la base de données - ce n'est pas un script ou un programme exécutable. Vous devriez normalement éviter l'accès public en écriture - cela signifie que vous ne vous souciez pas de savoir qui détruit votre base de données à tout moment (parce que n'importe qui peut le faire si le fichier a une autorisation d'écriture publique). Donc, tout au plus, vous devriez utiliser 666, et de préférence 664 ou plus d'autorisations strictes. –
Oui, je le savais, je le testais juste pour voir si c'était la faute ou non. (heureusement, ça ne l'était pas). Modifié ses autorisations en 644 et l'a déplacé en dehors du répertoire www. – Mint