Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incompatibilité entre local et en ligne

    25 octobre 2021 à 17:17:38

    .

    -
    Edité par PaulLebrop 27 octobre 2021 à 23:02:28

    • Partager sur Facebook
    • Partager sur Twitter
      25 octobre 2021 à 17:25:19

      > ça ne peut pas venir de la base de données

      Pourtant tout semble indiquer le contraire. Tu as accès aux logs d'erreur sur ton serveur ?

      > Le topic est bien mis à jour dans la catégorie (last author, last update) mais n'est pas inséré dans ma base de donnée dans les TOPICS...

      Toutes ces opérations devraient être réalisées dans une transaction parce que tu ne devrais pas faire les autres opérations si l'une d'entre elles foire. D'ailleurs, pour que l'INSERT échoue mais que l'UPDATE ait lieu c'est que les erreurs PDO ne sont même pas activées (du moins pas en mode exception).

      On notera aussi que tu mets des htmlspecialchars où il ne faut pas mais pas où il faudrait :/ (idem pour le nl2br)

      > $topic_date = date('d/m/Y H:i:s' );

      La colonne n'est donc pas de type DATETIME :/

      -
      Edité par julp 25 octobre 2021 à 17:33:49

      • Partager sur Facebook
      • Partager sur Twitter
        25 octobre 2021 à 22:33:14

        .

        -
        Edité par PaulLebrop 27 octobre 2021 à 23:02:51

        • Partager sur Facebook
        • Partager sur Twitter
          25 octobre 2021 à 23:37:06

          > J'arrive à accéder au fichier qui contient les logs d'erreurs mais il n'y en a pas concernant le post de topic.

          En même temps, à moins d'avoir PHP >= 8.0.0, tu n'en auras pas si tu ne les as pas explicitement activées (cf 2e lien en signature).

          Si je me rappelle bien : donc t'es en FPM et les erreurs PHP sont encore dans un log à part (pas celui d'erreur de nginx) ?

          > Ce que je ne comprends pas c'est que tout fonctionne parfaitement en local mais pas en ligne.

          Rien que la casse peut jouer (tables et bases suivant l'OS et les paramètres de MySQL) mais si l'INSERT n'a pas lieu mais l'UPDATE si, il n'y a pas 36 explications et tu devrais en trouver la raison dans tes logs. Je suppose que tu n'as pas de triggers ? Je doute que ça vienne d'un auto-incrément, MySQL ne laissant pas mettre n'importe quelle valeur si tu avais tenté d'en forcer une valeur ou d'un décalage entre les structures créées et des données importées. Des structures de tables désynchronisées ? Des valeurs par défaut différentes ? Une variable qui se retrouve à NULL en production pour une colonne non-nullable ? MySQL qui est configuré en (sql_)mode strict en production mais pas en dév d'où une différence de comportement ? ...

          -
          Edité par julp 25 octobre 2021 à 23:50:43

          • Partager sur Facebook
          • Partager sur Twitter

          Incompatibilité entre local et en ligne

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown