Voici pour commencer quelques informations:
- Serveur: GNU/Linux Debian 6 Squeeze
- Tourne sous Lighttpd
- sqlite3 et php-sqlite sont installés
Je recherche à faire un INSERT par le biais de PDO dans une base Sqlite v3.
Pour faire un SELECT sur cette même base, je procède comme suit. Et ce la marche formidablement bien.
<?php
try {
$dbh = new PDO('sqlite:pth/to/my/base.sdb');
$sql = 'SELECT * FROM articles WHERE id = :id';
$sth = $dbh->prepare($sql);
$sth->execute( array ( ':id' => 1 ) );
$res = $sth->fetchAll(PDO::FETCH_ASSOC);
print_r ( $res );
} catch (PDOException $e ) {
print "Erreur!: " . $e->getMessage() . "<br/>";
die();
}
?>
Mais pour un insert que voici:
<?php
try {
$dbh = new PDO('sqlite:pth/to/my/base.sdb');
$title = 'New title';
$content = 'New content';
$sql = "INSERT INTO articles ( title, content ) VALUES ( :title , :content )";
$sth = $dbh->prepare($sql);
$sth->bindParam(':title', $title);
$sth->bindParam(':content', $content);
$sth->execute( );
$res = $sth->rowCount();
print_r ( $res );
} catch (PDOException $e ) {
print "Erreur!: " . $e->getMessage() . "<br/>";
die();
}
?>
J'ai utilisé bindParam pour voir si le fait de passer les paramètres en array bloquaient pour une raison ou pour une autre, mais aussi la version sans binding, et cela ne change absolument rien:Je n'obtiens aucune erreur, mais aucun enregistrements non plus...
Cette même requête directement avec sqlite3 fonctionne évidemment.
Je suis un peu perdu, ne trouvant pas trop d'éléments de pistes sur la toile.
Aussi toutes idées seront les bienvenue!
En vous remerciant.