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

SQLite Discussion :

no such table: carte alors que cette table existe


Sujet :

SQLite

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut no such table: carte alors que cette table existe
    Bonjour à tous,

    mon problème est le suivant : je me connecte à une base SQLite, la connexion réussit à chaque fois. En revanche mes requêtes ne fonctionnent pas et me renvoient ce warning :
    <b>Warning</b>: SQLiteDatabase::query() [<a href='function.SQLiteDatabase-query'>function.SQLiteDatabase-query</a>]: no such table: carte in <b>D:\...\module.vue.php</b> on line <b>89</b><br />
    Je ne comprend vraiment pas puisque la base est correctement ouverte, et que la table carte existe dans ma base (je le vois avec SQLite manager et en ouvrant le fichier avec bloc notes).

    Voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($sqlite = new SQLiteDatabase("../../test_base", 0666, $erreur)) {
     
    $retour_type  = $sqlite->query("SELECT * FROM carte");
    // Traitement du résultat mais le script s arrête avant
    }
    Ce bug est vraimentbizarre, et j'avoue ne pas savoir quoi essayer pour comprendre d'où vient le problème. Merci de m'aider

  2. #2
    Membre actif

    Inscrit en
    Décembre 2004
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 169
    Points : 225
    Points
    225
    Par défaut
    Salut,

    Pour t'aider dans tes recherches...

    1) tu as peut être un problème avec le chemin relatif de ta base "../../test_base", pour le savoir crée une copie ddu fichier "test_base" à l'endroit exact du fichier php (et modifie "../../test_base" en "test_base"). Si tout est OK, c'est le chemin qui n'est pas bon.

    2) si NOK, assure toi que test_base est en SQLite 2.8.17, car c'est cette version qui est utilisée avec les hébergeurs de Php5 (sauf indication contraire).

    3) si tu ne trouves pas, alors utilise un mini-script php pour tester ton environnement php et sqlite :

    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
     
    <?php
        // Mini script de test SQLite
        // Fonctionne sous free.fr
    	function ma_fonction($v) {
    		return $v.' est issue de ma fonction !';
    	}
    	$db = sqlite_open('essai.sdb');
    	//$rq = 'drop table tbl;';
    	//sqlite_query($rq, $db);
    	$rq = 'create table tbl (txt text);';
    	sqlite_query($rq, $db);
    	for ($i = 0; $i<10; $i++) {
    		$rq = "insert into tbl (txt) values ('Ligne n°$i');";
    		sqlite_query($rq, $db);
    	}
    	sqlite_create_function($db, 'ma_fonction', 'ma_fonction', 1);
    	$rq = 'select txt, ma_fonction(txt) from tbl;';
    	$rs = sqlite_query($rq, $db);
    ?>
    <html>
    <head>
    </head>
    <body>
    <?php
    	echo 'Résultats :<br />';
    	while ($lg = sqlite_fetch_array($rs)) {
    		echo $lg[0].', '.$lg[1].'<br />';
    		if (!sqlite_has_more($rs)) {
    			echo 'Dernière ligne<br />';
    		}
    	}
    	echo 'Nombre de résultats = '.sqlite_num_rows($rs);
    ?>
    </body>
    </html>

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Salut,

    merci beaucoup pour ton aide, ta première idée semble avoir été la bonne : ça marche en déplacant le fichier sqlite.

    J'avancerai ça demain et j'aurais peut être encore un problème, mais pour l'instant ça semble résolu.

    Juste une question quand même : j'avais codé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($sqlite = new SQLiteDatabase("../../test_base", 0666, $erreur)) {
    echo "ok"; }
    else echo $erreur;
    Et ça m'a toujours affiché ok, alors qu'elle était mal ouverte Bizarre...

    Mais bref, ça marche et c'est le principal, merci encore

  4. #4
    Membre actif

    Inscrit en
    Décembre 2004
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 169
    Points : 225
    Points
    225
    Par défaut
    bonsoir,

    C'est normal que cela affichait "ok" car tu n'avais aucune erreur !

    Lorsqu'SQLite ne trouve pas la base à ouvrir il se prépare à en créer une autre... donc si tu avais commencé par créer une nouvelle table dans ta première requête, tu aurais une nouvelle base quelque part sur ton site.
    Ta base serait ici : "../../test_base", mais pas là ou tu penses qu'elle devrait être héhé. En la cherchant tu comprendrais certainement ton erreur.

    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete SQL qui ne retourne rien alors que ma table n est pas vide
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/06/2009, 19h16
  2. Réponses: 4
    Dernier message: 31/08/2007, 11h32
  3. Réponses: 28
    Dernier message: 23/08/2007, 11h19
  4. [MySQL] réponse vide alors que le champs existe dans la table, sans retour d'erreur
    Par ben_skywalker dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/02/2007, 14h20
  5. Table inexistante alors que je viens de la créer
    Par Invité dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 26/11/2005, 14h07

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