convivialité de PDO et SQLite 3
Bonjour les amis,
Je souhaite utiliser PDO et SQlite 3 dans le même script.
J'ai écrit ceci :
Code:
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);
}
../.. |
et je reçois :
Code:
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 |
J'en conclus que PDO n'a pas unlocké ma base (car si je commente le code PDO, "ça marche").
Est-ce que quelqu'un ici saurait comment faire, svp ?
Merci.