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 :

Update avec mysqli_query


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut Update avec mysqli_query
    Bonjour,

    J'ai un petit soucis, de syntaxe avec la partie UPDATE en mysqli ....

    ci-dessous mon petit code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        $MyRef="D00023";
        $Status="newone";
        mysqli_query($connect,"UPDATE MyBase SET Status='$Status' WHERE Ref='$MyRef'");
    Une idée de ce qui pourrait poser pb ?

    Thais

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Points : 52
    Points
    52
    Par défaut
    Hello !
    Juste comme ca, si je suppose que 'MyBase' c'est bien le nom de ta base, ca devrait pas plutot etre 'MyTable' ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut
    oui, pardon, 'maTable' ....

    Une idée ?

    PS : Y a t'il des différences de syntaxes suivant les versions de PHP ?

    Thais

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Y a t'il des différences de syntaxes suivant les versions de PHP ?
    J'ai l'impression que pour toi, PHP ça veut dire "Perverse Hypertext Preprocessor" et que tu penses que les développeurs de PHP s'amusent à rendre les codes invalides d'une version de PHP à l'autre...

    En tout état de cause, le code que tu montres ne peut pas fonctionner puisqu'il n'y a pas de connexion à la base.
    Mais si on considère que tu as bien la connexion à ta base, que tes noms de table, de champs de colonnes sont correctes, que tu as bien une valeur "D00023" dans le champ Ref de la table maTable, alors il n'y a pas de raison que ça ne fonctionne pas...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut
    mais non, Bovino, je ne suis pas perverse j'ai eut des soucis avec mon hebergeur qui ne supportais pas le mode PDO .... il fallait que je passe ne mode mysqli ...

    Donc je confirme, la connexion à la base, la cloture, les nom et champs sont correctes (LE INSERT marche d'ailleurs très bien).

    J'ai même essayé avec le formalisme suivant qui ne fonctionne pas .... l'insert ok, mais pas le update :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        $MyRef="D10000";
        $MyStatus="sssss";
        $MyTitre="tuuuuu";
        mysqli_query($connect,"INSERT INTO MyTable (Ref,Status,Titre) VALUES ('$MyRef','$MyStatus','$MyTitre') ON DUPLICATE KEY UPDATE Ref='$MyRef'");
    Peut être que ma bdd n'est pas configurer comme il le faut ?
    Un copie d'écran ci-dessous...

    Merci pour votre aide.
    Images attachées Images attachées  

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Points : 52
    Points
    52
    Par défaut
    Tu devrais essaiyer d'afficher la requete et de la jouer directement dans phpmyadmin.
    S'il y a une erreur, tu la verras. sinon c'est que tu n'as pas de connexion. Donc en gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        $MyRef="D10000";
        $MyStatus="sssss";
        $MyTitre="tuuuuu";
        die("INSERT INTO MyTable (Ref,Status,Titre) VALUES ('$MyRef','$MyStatus','$MyTitre') ON DUPLICATE KEY UPDATE Ref='$MyRef'");
    puis tu joues la requete renvoyée

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Pour débugguer une requête dans ton script - c'est une bonne méthode aussi de tester ta requête dans phpmyadmin - tu peux écrire ta requête séparément ainsi tu peux la faire afficher pour voir si elle a une allure correcte une fois les variables renseignées.
    Et pour connaitre les erreurs retournées par le sgbd il suffit de les faire afficher avec mysqli_error();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $connect = "...";
     
    $sql = "INSERT....";
    // Vérification de la chaine
    echo $sql;
     
    $result = mysqli_query($sql) or die(mysqli_error($connect));

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    Merci pour le coup de main.
    Alors, j'exécute dans phpmyadmin la requete suivante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO `MaTable` (`Ref`,`Status`,`Titre`) VALUES ('D10000','s1','t1') ON DUPLICATE KEY UPDATE Ref='D10000'

    Résultat :
    - Si la Ref 'D10000' n'existe pas, elle est créée et on retrouve bien s1 et t1, cela indique que l'accès à la base est Ok
    - Si la Ref 'D10000' existe aucun changement .... (j'ai bien évidement modifié le s1 en s2 et le t1 en t2), mais pas de message d'erreur, tout roule mais la partie Update n'est pas pris en compte ...

    Très curieux .....

    Une autre idée de test à faire ?

    Thais

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Points : 52
    Points
    52
    Par défaut
    Donc ta requete fonctionne bien. Il y a pas de raison qu'elle fonctionne pas dans ton script.
    Tu peux toujours essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysqli_query($connect,"INSERT INTO MyTable (Ref,Status,Titre) VALUES ('$MyRef','$MyStatus','$MyTitre') ON DUPLICATE KEY UPDATE Ref='$MyRef'") or die(mysqli_error($connect));
    Mais à mon avis tu n'auras rien de plus comme erreur parce que ca fonctionne !

Discussions similaires

  1. UPDATE avec JOIN ?
    Par zakuli dans le forum Débuter
    Réponses: 3
    Dernier message: 25/07/2007, 14h53
  2. UPDATE avec des variables Delphi ...
    Par Kokito dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/03/2004, 22h35
  3. Requete d'update avec concatenation !!
    Par chris92 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/02/2004, 12h05
  4. [version] Requete Update avec différentes versions de mySQL
    Par regbegpower dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/01/2004, 17h19
  5. Pb Update avec chaine de caractere
    Par JuJu° dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/05/2003, 15h58

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