Bonjour les amis,
Je souhaite utiliser PDO et SQlite 3 dans le même script.
J'ai écrit ceci :
et je reçois :
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 $dbName = 'db.sqlite3'; $dbTable = 'users'; // Lecture du numéro du dernier enregistrement de la table "Users" (marche pas avec SQLite 3) try { $bh = new PDO('sqlite:db.sqlite3'); //ouverture de la base via PDO } catch (PDOException $e) { echo "Erreur à l'ouverture de la base PDO : " . $e->getMessage(); } $query = "SELECT Count(*) FROM $dbTable"; $result = $bh->query($query); $nrOfRows = $result->fetch(); $iRec = $nrOfRows[0] + 1; $bh = null; //fermeture de la base "PDO" // Ouverture de la base SQLite3 $base = new SQLite3($dbName, 0666); if (!$base) { $errorNr = $base->lastErrorCode(); $errorText = $base->lastErrorMsg(); echo "Erreur $errorNr à l'ouverture de la base : $errorText<br>"; exit(1); } $query = "INSERT INTO $dbTable (ID,lastName) VALUES ('$iRec','$lastName'"; $result = $base->query($query); if (!$result) { $errorNr = $base->lastErrorCode(); $errorText = $base->lastErrorMsg(); echo "Erreur $errorNr au QUERY : $errorText<br>"; exit(1); } ../..
J'en conclus que PDO n'a pas unlocké ma base (car si je commente le code PDO, "ça marche").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Warning: SQLite3::query() [sqlite3.query]: Unable to execute statement: database is locked in C:\wamp\www\users_create_2.php on line 29 Call Stack # Time Memory Function Location 1 0.0051 405712 {main}( ) ..\pcaweb_users_create_2.php:0 2 2.0057 409240 SQLite3->query( ) ..\pcaweb_users_create_2.php:29 Erreur 5 au QUERY : database is locked
Est-ce que quelqu'un ici saurait comment faire, svp ?
Merci.
Partager