IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQLLite] Lecture des données dans un fichier .db


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut [SQLLite] Lecture des données dans un fichier .db
    Bonjour,

    Dans le cadre d'un projet, je dois, en PHP5, lire un fichier .db qui contient une base de données SQLITE. Ce fichier, que je nomme ici toto.db, a est initialement géré sous WinCE; et on me l'envoie sous forme brute. J'ai déjà une base MySQL5, dans laquelle j'ai créé les mêmes tables que celles de la base SQLITE et je dois maintenant remplir ma base MySQL à partir des données SQLITE.

    Le pb, c'est que sous WAMP 1.6.3, SQLITE Manager n'arrive pas à lire le fichier toto.db...probablement parce qu'il a été généré sous WinCE. Du coup, je sais pas comment commencer, quel outil utiliser pour manipuler mon toto.db et en extraire ses données.

    Voilà, si vous pouvez m'aider, ben ça serait hyper cool!

    En plus, quand j'ouvre le toto.db avec le blocnotes, c'est une sorte de mélange de SQL et d'HTML...assez incompréhensible...pour moi du moins.

    Merci de votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    Tout simple doc php.net
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    if ($db = sqlite_open('toto.db', 0666, $sqliteerror)) {
      $result = sqlite_query($db,'select * from nom.table');
      var_dump(sqlite_fetch_array($result));
    } else {
      die ($sqliteerror);
    }
    ?>
    Tu devrais avoir ce qu'il faut comme ça.
    Sinon, vérifie les versions de Sqlite que tu as installé partout.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par davidbo5
    Bonjour,
    Tout simple doc php.net
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    if ($db = sqlite_open('toto.db', 0666, $sqliteerror)) {
      $result = sqlite_query($db,'select * from nom.table');
      var_dump(sqlite_fetch_array($result));
    } else {
      die ($sqliteerror);
    }
    ?>
    Tu devrais avoir ce qu'il faut comme ça.
    Sinon, vérifie les versions de Sqlite que tu as installé partout.
    Merci de ta réponse.

    Il doit être sauvé où sur le disque le fichier toto.db?

    Ca correpond à quoi le "nom" de "nom.table"?

    Mon fichier db et SQLITE de wamp sont tous les deux en version 3 sinon.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par PedroBD
    Merci de ta réponse.

    Il doit être sauvé où sur le disque le fichier toto.db?
    A l'endroit ou stocké ton fichier .php
    Citation Envoyé par PedroBD
    Ca correpond à quoi le "nom" de "nom.table"?
    Au nom de la table que tu veux voir.
    Citation Envoyé par PedroBD
    Mon fichier db et SQLITE de wamp sont tous les deux en version 3 sinon.
    Et la version WinCE, c'est laquelle ?

    Cordialement,
    David

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par davidbo5
    A l'endroit ou stocké ton fichier .php

    Au nom de la table que tu veux voir.

    Et la version WinCE, c'est laquelle ?

    Cordialement,
    David
    Merci de ta réponse.

    C'est la version 5.0 de WinCE.

    Autre chose, quand je veux immporter ma base depuis SQLITEmanager, ça plante en m'affichant simplement le rectangle TABLE vide. Et quand je me mets en mode debug, j'ai l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Call to a member function fetchColumn() on a non-object in C:\Program Files\wamp\sqlitemanager\include\sqlite3.class.php on line 140
    Voilà, je sais pas quoi faire, je sais que je peux lire mon fichier db avec un utilitaire DOS, mais pas en php...une idée?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    As tu essayé le petit bout de code que je t'ai donné ?

    Et dis moi ce qu'il te raconte.

    Cordialement.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par davidbo5
    As tu essayé le petit bout de code que je t'ai donné ?

    Et dis moi ce qu'il te raconte.

    Cordialement.
    Oui, je l'ai essayé. J'ai une petite interface d'importation de fichier en php.

    Voici mon code de lecture du fichier sélectionné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if($db = sqlite_open($_FILES["fichier"]["name"], 0666, $messageerreur)) {
     
    $result = sqlite_query($db,'select * from nom.table');
      var_dump(sqlite_fetch_array($result));
     
    } else {
      die ($messageerreur);
    }
    ?>
    Que je mette $_FILES["fichier"]["name"] ou 'toto.db', j'ai toujours le message

    NULL à l'écran. Je me suis mis en mode debug et j'ai pas de message d'erreur.

    Par contre sous SQLITE manager, quand j'importe la base, j'ai le message décrit dans mon post précédent.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par PedroBD
    Oui, je l'ai essayé. J'ai une petite interface d'importation de fichier en php.

    Voici mon code de lecture du fichier sélectionné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if($db = sqlite_open($_FILES["fichier"]["name"], 0666, $messageerreur)) {
     
    $result = sqlite_query($db,'select * from nom.table');
      var_dump(sqlite_fetch_array($result));
     
    } else {
      die ($messageerreur);
    }
    ?>
    Je vois que tu n'as pas changé nom.table par le nom de ta table que tu veux importer.
    Connais-tu la structure de ta table ?

    Je te redonne le code complet mais tu le changes par tes propres valeurs ou tu essayes celui-là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if ($db = sqlite_open('tata.db', 0666, $sqliteerror)) {
        sqlite_query($db,'CREATE TABLE foo (bar varchar(10))');
        sqlite_query($db,"INSERT INTO foo VALUES ('fnord')");
        $result = sqlite_query($db,'select bar from foo');
        var_dump(sqlite_fetch_array($result));
    } else {
        die ($sqliteerror);
    }
    ?>
    Cordialement

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par davidbo5
    Je vois que tu n'as pas changé nom.table par le nom de ta table que tu veux importer.
    Connais-tu la structure de ta table ?

    Je te redonne le code complet mais tu le changes par tes propres valeurs ou tu essayes celui-là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if ($db = sqlite_open('tata.db', 0666, $sqliteerror)) {
        sqlite_query($db,'CREATE TABLE foo (bar varchar(10))');
        sqlite_query($db,"INSERT INTO foo VALUES ('fnord')");
        $result = sqlite_query($db,'select bar from foo');
        var_dump(sqlite_fetch_array($result));
    } else {
        die ($sqliteerror);
    }
    ?>
    Cordialement
    Merci bcp de ton aide. J'avais déjà essayé avant de remplacer "nom.table" par la "Tests", une des tables de ma base que je désire importer. Le message est le même, toujours "NULL"

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par PedroBD
    Merci bcp de ton aide. J'avais déjà essayé avant de remplacer "nom.table" par la "Tests", une des tables de ma base que je désire importer. Le message est le même, toujours "NULL"
    Par contre, ton code marche très bien, voici ce que j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(2) { [0]=> string(5) "fnord" ["bar"]=> string(5) "fnord" }
    Ce doit être mon fichier .db qui est incompatible, non?

    C'est quand même bizarre que j'arrive à accéder aux données sous DOS avec le prog Sqlite.exe (version 3.3.8)

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par PedroBD

    Ce doit être mon fichier .db qui est incompatible, non?

    C'est quand même bizarre que j'arrive à accéder aux données sous DOS avec le prog Sqlite.exe (version 3.3.8)
    Est-ce que phpinfo(); dans la section Sqlite parle bien de la version 3 ? Et non de la 2.8 comme en standard
    Sinon tu faire ça en command dos :
    echo '.dump' | sqlite toto.db | gzip -c >toto.dump.gz
    ou
    echo '.dump' | sqlite toto.db >toto.sql

    pour ne pas le récupérer compressé.

    Tu auras comme ça toute la structure de la table en format SQL

    Cordialement

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par davidbo5
    Est-ce que phpinfo(); dans la section Sqlite parle bien de la version 3 ? Et non de la 2.8 comme en standard
    Sinon tu faire ça en command dos :
    echo '.dump' | sqlite toto.db | gzip -c >toto.dump.gz
    ou
    echo '.dump' | sqlite toto.db >toto.sql

    pour ne pas le récupérer compressé.

    Tu auras comme ça toute la structure de la table en format SQL

    Cordialement
    Voilà ce que me marque phpinfo() dans SQLITE:

    SQLite version 2.8.17 - 3.2.8undefined / PHP version 5.1.6

    Ca veut dire que j'ai la version 3, non?

    Comment me la procurer sinon?

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par PedroBD
    Voilà ce que me marque phpinfo() dans SQLITE:

    SQLite version 2.8.17 - 3.2.8undefined / PHP version 5.1.6

    Ca veut dire que j'ai la version 3, non?

    Comment me la procurer sinon?
    Et comment l'installer aussi, vu que j'utilise la dernière version de WAMP

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par PedroBD
    Et comment l'installer aussi, vu que j'utilise la dernière version de WAMP
    * in php.ini:

    add (or update) the following line in php.ini:

    extensions = sqlite3.dll

    il faut la dll sqlite3.dll aussi dans le répertoire php/extensions/

    Tu as ceci dans ton php.ini.

    sinon le dump ne te suffit pas pour extraire tes données et les renvoyer dans phpmyadmin?

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par davidbo5
    * in php.ini:

    add (or update) the following line in php.ini:

    extensions = sqlite3.dll

    il faut la dll sqlite3.dll aussi dans le répertoire php/extensions/

    Tu as ceci dans ton php.ini.

    sinon le dump ne te suffit pas pour extraire tes données et les renvoyer dans phpmyadmin?
    Bon j'ai récupéré la dll php_sqlite3.dll. Je l'ai installée depuis le php.ini et j'ai redémarré wamp. le dump me renvoie toujours null quand je veux lire le fichier .db à l'aide d'une petite interface de lecture d'un fichier sur le disque dur. Où dois-je stocker mon fichier dans wamp pour pouvoir le lire en tapant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlite_open('Base_sqlite.db', 0666, $sqliteerror)
    P.S: "Où" = dans quel répertoire.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par PedroBD
    Bon j'ai récupéré la dll php_sqlite3.dll. Je l'ai installée depuis le php.ini et j'ai redémarré wamp. le dump me renvoie toujours null quand je veux lire le fichier .db à l'aide d'une petite interface de lecture d'un fichier sur le disque dur. Où dois-je stocker mon fichier dans wamp pour pouvoir le lire en tapant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlite_open('Base_sqlite.db', 0666, $sqliteerror)
    P.S: "Où" = dans quel répertoire.
    Y a du mieux maintenant, quand je lis le fichier que j'importe depuis mon interface, j'ai le message "File is encrypted or not a database"

    Bon, c'est pas encore ça, mais ça s'approche. Vous pourriez m'aider à lire le fichier? Merci

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par PedroBD
    Bon j'ai récupéré la dll php_sqlite3.dll. Je l'ai installée depuis le php.ini et j'ai redémarré wamp. le dump me renvoie toujours null quand je veux lire le fichier .db à l'aide d'une petite interface de lecture d'un fichier sur le disque dur. Où dois-je stocker mon fichier dans wamp pour pouvoir le lire en tapant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlite_open('Base_sqlite.db', 0666, $sqliteerror)
    P.S: "Où" = dans quel répertoire.
    php_sqlite3.dll, tu l'as bien renommé sqlite3.dll car c'est le nom que tu as mis dans ton php.ini

    Tu dois placer ton fichier Base_sqlite.db à la racine www ou htdocs

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par davidbo5
    php_sqlite3.dll, tu l'as bien renommé sqlite3.dll car c'est le nom que tu as mis dans ton php.ini

    Tu dois placer ton fichier Base_sqlite.db à la racine www ou htdocs
    Merci de ta réponse. Voici un extrait de mon php. ini:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    extension=php_pdo_sqlite.dll
    ;extension=php_pdo_firebird.dll
    ;extension=php_pdo_mssql.dll
    ;extension=php_pdo_mysql.dll
    extension=php_pdo_oci.dll
    ;extension=php_pdo_oci8.dll
    ;extension=php_pdo_odbc.dll
    ;extension=php_pdo_pgsql.dll
    extension=php_sqlite.dll
    extension=php_sqlite3.dll
    extension=sqlite3.dll
    Il s'agit des 11 dernières lignes. Je suis allé chercher les fichiers php_sqlite3.dll et sqlite3.dll sur le net et je les ai copiés dans le php/ext de wamp. Quand j'ouvre mon fichier et que je veux le lire avec dump j'ai maintenant le message:

    "File is encrypted or not a database"

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 41
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par PedroBD
    Merci de ta réponse. Voici un extrait de mon php. ini:
    De rien, tu essayes d'y arriver aussi de ton côté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ;extension=php_sqlite.dll
    ;extension=php_sqlite3.dll
    extension=sqlite3.dll
    Essayes comme ça, n'oublie de relance apache après les modifications.

    Et vérifie ton phpinfo();

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par davidbo5
    De rien, tu essayes d'y arriver aussi de ton côté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ;extension=php_sqlite.dll
    ;extension=php_sqlite3.dll
    extension=sqlite3.dll
    Essayes comme ça, n'oublie de relance apache après les modifications.

    Et vérifie ton phpinfo();
    Ok, ya du mieux et du...disons moins mieux!

    Le mieux c'est que maintenant j'ai la version 3.2.8 de SQLITE dans le phpinfo() de sqlitemanager. Le moins mieux c'est que php me renvoie l'erreur:

    Fatal error: Call to undefined function sqlite_open() in C:\Program Files\wamp\www\gma\connexion_sqlite.php on line 5
    En gros, il reconnait plus la fonction sqlite_open()

    Je vais essayer en activant en plus php_sqlite.dll

    Peut-être que j'ai pas le bon sqlite3.dll?

Discussions similaires

  1. Réponses: 13
    Dernier message: 16/06/2010, 12h17
  2. Réponses: 3
    Dernier message: 26/09/2008, 13h10
  3. Réponses: 13
    Dernier message: 08/07/2008, 17h20
  4. Réponses: 2
    Dernier message: 29/01/2007, 14h14
  5. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo