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... )

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|
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
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";
}
?>
j'obtiens l'erreur :
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
A noter que j'ai l'erreur (que je ne comprends pas non plus) :
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
lorsque je me connecte à la base sans le flag 0666 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$db = new SQLite3($dbname);
Des idées ?
Merci pour votre aide