Sqlite via PDO + PHP5

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Sqlite via PDO + PHP5

par chatlumo » 10 oct. 2008, 13:11

Oui, il suffit d'avoir au moins une ligne de données dans la table pour que l'erreur ne se produise plus...

par mere-teresa » 10 oct. 2008, 12:39

Es-tu certain que la connection à la DB se passe bien ?
Sinon, tu as http://www.sqlitemanager.org/ qui te permet d'avoir un frontend pour SQLite

par chatlumo » 10 oct. 2008, 11:30

Oui je l'ai fait mais ma requête est bonne. Et phpmyadmin c'est pour mysql, pas sqlite ;)

Bon enfin dommage je voulais essayer sqlite mais du coup j'ai refait ma petite table sous mysql et avec le même code (à part la phase de connexion bien sûr) et là aucun soucis...

par jojolapine » 10 oct. 2008, 11:04

Fait un echo de ta requête select pour voir?
et test là ds phpmyadmin directement...

par chatlumo » 09 oct. 2008, 23:56

Note que tu n'es pas obligé de passer par pdo. PHP5 inclut sqlite en natif.

(quelques fonctions et descriptions: http://be.php.net/manual/fr/book.sqlite.php )
Oui mais la version 3 ne se gère que via PDO (si j'ai bien compris).
tout dépend ou se situe l'erreur... (là je penche pour la deuxième solution ;) )
C'est bien ce qui me semblait mais cela ne m'affiche rien.
En fait comme ça produit une erreur fatale, le reste de la page n'est pas affiché.

Voilà un code complet que vous pouvez tester :

Code : Tout sélectionner

// create a SQLite3 database file with PDO and return a database handle (Object Oriented) try{ $dbHandle = new PDO('sqlite:test.sqlite3'); }catch( PDOException $exception ){ die($exception->getMessage()); } // create page view database table $sqlCreateTable = 'CREATE TABLE pageView(id INTEGER PRIMARY KEY AUTOINCREMENT, page CHAR(256), access INTEGER(10))'; $dbHandle->exec($sqlCreateTable); // remove or 'comment out' this line after first run // insert page visit in database with a prepared statement /*$sqlInsertVisit = 'INSERT INTO pageView (page, access) VALUES (:page, :access)'; $stmt = $dbHandle->prepare($sqlInsertVisit); $stmt->bindParam(':page', $_SERVER['PHP_SELF'], PDO::PARAM_STR); $stmt->bindParam(':access', time(), PDO::PARAM_INT); $stmt->execute();*/ // get page views from database $pageVisit = $dbHandle->quote($_SERVER['PHP_SELF']); $sqlGetView = 'SELECT count(page) AS view FROM pageView WHERE page = '.$pageVisit.''; $result = $dbHandle->query($sqlGetView); $pageView = $result->fetch(); // store result in array // print page views echo 'This page has been viewed '.$pageView['view'].' times.';

par jojolapine » 09 oct. 2008, 23:26

http://php.net/pdo :-*

Sinon tu faits
<?php echo $dbHandle->errorInfo();
// ou
echo $result->errorInfo();
?>
tout dépend ou se situe l'erreur... (là je penche pour la deuxième solution ;) )

par Berzemus » 09 oct. 2008, 23:25

Note que tu n'es pas obligé de passer par pdo. PHP5 inclut sqlite en natif.

(quelques fonctions et descriptions: http://be.php.net/manual/fr/book.sqlite.php )

par chatlumo » 09 oct. 2008, 23:23

Comment je l'utilises ? Je connais pas bien PDO (encore moins sqlite).

par jojolapine » 09 oct. 2008, 23:19

Et si tu essaye d'afficher les erreurs avec $dbHandle->errorInfo() ?

Sqlite via PDO + PHP5

par chatlumo » 09 oct. 2008, 23:10

Bonsoir,

J'ai un soucis avec php5, pdo et sqlite :

Je passe les détails du CREATE TABLE...

Code : Tout sélectionner

$pageVisit = "machin"; $dbHandle = new PDO('sqlite:truc.sqlite3'); $sqlGetView = 'SELECT count(page) AS view FROM pageView WHERE page = '.$pageVisit.''; $result = $dbHandle->query($sqlGetView); $pageView = $result->fetch();
Ma table existe mais elle est vide. Et j'obtiens le message :
Fatal error: Call to a member function fetch() on a non-object in ... on line XX

Savez-vous pourquoi ?

Merci.