Bonjour,
je débute avec SQLite3 pour une mini WebAppli sous PHP 7.4
Pas de souci en lignes de commande :
(même si je ne comprends pas le non fonctionnement des clause DEFAULT...)
par contre en PHP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 root@SRV-DEBIAN:~# sqlite3 dashboard.db; SQLite version 3.34.1 2021-01-20 14:10:07 Enter ".help" for usage hints. sqlite> CREATE TABLE IF NOT EXISTS affectation (rfc VARCHAR(10) PRIMARY KEY, technicien VARCHAR(30) NOT NULL, date_creation date DEFAULT CURRENT_TIMESTAMP, date_modifcation date DEFAULT NULL); sqlite> INSERT INTO affectation VALUES ('RFC1234567', 'moi'); Error: table affectation has 4 columns but 2 values were supplied sqlite> INSERT INTO affectation VALUES ('RFC1234567', 'moi', '2023-04-16 13:13:13'); Error: table affectation has 4 columns but 3 values were supplied sqlite> INSERT INTO affectation VALUES ('RFC1234567', 'moi', '2023-04-16 13:13:13', NULL); sqlite> INSERT INTO affectation VALUES ('RFC1234568', 'moi', '2023-04-16 13:13:13', NULL); sqlite> SELECT * FROM affectation; RFC1234567|moi|2023-04-16 13:13:13| RFC1234568|moi|2023-04-16 13:13:13|
j'obtiens l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php $dbname = '/root/dashboard.db'; $table ="affectation"; if (!class_exists('SQLite3')) die("SQLite 3 NOT supported."); $db = new SQLite3($dbname, 0666); if(!$db){ die($db->lastErrorMsg()); } else { echo "Opened database successfully\n"; } $query = "INSERT INTO affectation VALUES ('RFC1234569', 'moi', '2023-04-16 13:13:13', NULL)"; $results = $db->exec($query); if ($results === FALSE) { die("La requête a échouée"); } else { echo "Un nouvel enregistrement a été ajouté à la base"; } ?>
A noter que j'ai l'erreur (que je ne comprends pas non plus) :Opened database successfully
Warning: SQLite3::exec(): no such table: affectation in /home/dashboard/public/sqlite3.php on line 33
La requête a échouée
lorsque je me connecte à la base sans le flag 0666 :Fatal error: Uncaught Exception: Unable to open database: unable to open database file in /home/dashboard/public/sqlite3.php:18 Stack trace: #0 /home/dashboard/public/sqlite3.php(18): SQLite3->__construct() #1 {main} thrown in /home/dashboard/public/sqlite3.php on line 18
Des idées ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $db = new SQLite3($dbname);
Merci pour votre aide
Partager