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 :

[SQLite] update en sqlite


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 78
    Par défaut [SQLite] update en sqlite
    bonjour,

    j'ai un souci avec une requete update que je dois faire conjointement sur une base mysql et sur sqlite. avec la même requete sous mysql aucun souci tout fonctionne normalement, c'est sous sqlite le problème.

    voici mon code:

    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
    <?php
      //récupération des variables du formulaire
       $nom = $_GET['nom'];
       $prenom = $_GET['prenom'];
       $email = $_GET['email'];
       $id = $_GET['id'];
     
       //connexion à la base
       if ($db = sqlite_open("gestion_adresses", 0666, $erreur))
        {
            //update de l'enregistrement
            $req = "update adresse set nom='$nom', prenom='$prenom',    email='$email' where adresse_ID='$id'";
            sqlite_query($db, $req) or die("la modification à échouée ");
            echo "la modification a été effectuée";
        }
        else
            die($erreur);
       //fermeture de la base
       sqlite_close($db);
    ?>
    aucun retour d'erreur sur la requete et pourtant la modification n'est pas effectuée.
    débutant sur sqlite y a t il des différences de syntaxe ou spécificités concernant ce problème ?

    merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    D'après les informations glanées dans la documentation :
    • Vous devriez protéger vos données avec la fonction sqlite_escape_string
    • Obtenir un message d'erreur avec sqlite_error_string(sqlite_last_error($db)) ou utiliser le paramètre optionnel de la fonction sqlite_query prévu à cet effet

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 78
    Par défaut
    j'ai essayé toutes les formes possibles avec sqlite_escape_string autour de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $db = sqlite_open("gestion_adresses", 0666, $err);
    $requete = "update adresse set ";
    $requete.= "nom='".sqlite_escape_string($nom)."', ";
    $requete.= "prenom='".sqlite_escape_string($prenom)."', ";
    $requete.= "email='".sqlite_escape_string($email)."' ";
    $requete.= "where adresse_ID='".$_GET['clause']."'";
    $res = sqlite_query($db, $requete, $erreur);
    echo $erreur;
    sqlite_close($db);
    toujours aucun retour d'erreur et la modification n'est toujours pas effectuée dans la table.
    pourquoi est ce aussi bordelique de parser les requetes en sqlite ?
    qui a une solution?
    merci

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Avez-vous exécuté votre requête avec un outil (client sqlite, SQLiteManager ou autres) ? Que donne un var_dump($res) (à placer juste après sqlite_query) ?

    Est-ce que vous avez essayé avec PDO (si vous avez ça) ? Le code donnerait quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $db = new PDO('sqlite:gestion_adresses');
    $count = $dbh->exec('update adresse set nom=' . $db->quote($nom) . ', prenom=' . $db->quote($prenom) . ', email=' . $db->quote($email) . ' where adresse_ID=' . $db->quote($_GET['clause']) . ';');
    if ($count === FALSE) {
        die($db->errorCode());
    } else {
        echo "$count lignes modifiées";
    }
    ?>

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 78
    Par défaut
    avec cette méthode j'ai le code HY000 qui s'affiche
    et avec var_dump : string(102)

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    102, ça correspond à quoi ? Ce n'est pas un message d'erreur : les numéros s'arrêtent à 101. Il vous aurait modifié 102 lignes ?

    PDO ne nous en apprendra pas plus : il regroupe 90% des erreurs SQLite sous l'étiquette HY000 mais il y aurait bel et bien une erreur

    Etes-vous à jour ?

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

Discussions similaires

  1. Sqlite, Update & android problème
    Par morphine63 dans le forum Android
    Réponses: 7
    Dernier message: 12/02/2013, 14h45
  2. [PDO] PDO.sqlite : update non effectué, mais pas d'erreur
    Par Yosko dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/04/2012, 16h55
  3. SQL avec sqlite - insert, update
    Par Seth77 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/07/2008, 11h13
  4. [SQLite] Update via PHP
    Par Blueangel3109 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/03/2008, 13h03
  5. [SQLite] Installation de sqlite
    Par hdd dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/06/2006, 20h11

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