0 Call to a member function format() on boolean

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] 0 Call to a member function format() on boolean

    Bonjour,
    Je viens d'un autre forum qui m'a conseillé de venir ici pour mon problème car ils pensent qu'il est lié à Joomla.
    J'ai une variable : $date qui est une date d'expiration au format string ("2022-06-27 13:42:15"),
    J'utilise ce code pour être sûr du bon type de la variable :

    Code PHP:
    $timestamp $date;
    $expiration strtotime($timestamp);
    $expiration date('Y-m-d H:i:s'$expiration); 
    Ensuite j'utilise une requête sql : (nb_manager est de type datetime)

    Code PHP:
     $query->clear()
               ->
    insert('#__hv_account_current_manager_number')
               ->
    columns('user_id,expiration_date,nb_manager,published,concerned_plan_id')
               ->
    values('' $user_id ',' $expiration ',' $_SESSION['managerField']->nb_manager ', 0,' $row->plan_id .'');
     
    $db->setQuery($query);
     
    $db->execute(); 
    Dans la dernière ligne, lorsque la demande est exécutée, j'obtiens cette erreur : "0
    Call to a member function format() on boolean"
    Le forum précédent disait que l'erreur ne provient pas du code que j'ai envoyé, et que cela pourrait être une spécificité de Joomla. Je suis donc ici pour régler ce problème. Merci d'avance.

  • #2
    Bienvenue !

    Mets le rapport d'erreurs au maximum et active le débogage puis esaied e reproduire l'erreur, tu devrais alors avoir une liste des fichiers par où est passé le code avant cette erreur, et repérer la cause.
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      J'ai déjà debog et l'erreur apparait lors de $db->execute()

      Commentaire


      • #4
        Ton rapport d'erreur est au maximum, tu as bien le nom et la ligne du fichier dans la liste des fichiers ?
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          J'utilise le debogueur de l'IDE PHP_Storm et celui-ci me met une erreur lors de l'exécution du script ($db->execute())
          Dans mon navigateur il n'y a qu'une erreur 500,
          Je vous met l'erreur du navigateur ainsi que les captures des paramètres de mon joomla en pièces jointes Cliquez sur l'image pour l'afficher en taille normale

Nom : image_error_reporting_max.png 
Affichages : 345 
Taille : 14,9 Ko 
ID : 2040292Cliquez sur l'image pour l'afficher en taille normale

Nom : debug_system_activ.png 
Affichages : 333 
Taille : 22,6 Ko 
ID : 2040290Cliquez sur l'image pour l'afficher en taille normale

Nom : image_error_reporting_max.png 
Affichages : 357 
Taille : 14,9 Ko 
ID : 2040293
          Fichiers joints

          Commentaire


          • #6
            Hello.

            Vérifie déjà ta requête sql en l’exécutant avec phpmyadmin par exemple.

            Pour récupérer le sql il faut appeler la méthode __toString

            Par exemple :
            Code PHP:
            $toto $query->__toString(); 
            avant ton
            Code PHP:
            $db->execute(); 
            qui provoque l'erreur.

            Met un point d’arrêt juste avant l'erreur dans le débogueur de phpstrom et récupère le contenu de $toto pour l’exécuter dans phpmyadmin après rajout des préfixes de table avec chercher/remplacer dans un éditeur

            Regarde aussi ici :
            https://forum.joomla.fr/forum/d%C3%A...le#post2011839

            Bon dev.
            Timothee_wevalgo aime ceci.
            A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
            Rejoignez le Joomla Users Groupe Alsace...
            roland_d_alsace va-t-il devenir roland_du_grand_est ?

            Commentaire


            • #7
              $toto contient :
              INSERT INTO #__hv_account_current_manager_number
              (user_id,expiration_date,nb_manager,published,conc erned_plan_id) VALUES
              (1896,2022-06-27 13:42:15,5, 0,3)

              la requête sql :
              INSERT INTO soc_hv_account_current_manager_number
              (user_id,expiration_date,nb_manager,published,conc erned_plan_id) VALUES
              (1896,2022-06-27 13:42:15,5, 0,3)

              J'obtiens alors une erreur de syntaxe m'indiquant qu'il manque des guillemet autour de la date,
              J'ai donc ajouté des \' à ma requête et cela fonctionne
              nouvelle requête :
              Code PHP:
              $query->clear()
                         ->
              insert('#__hv_account_current_manager_number')
                         ->
              columns('user_id,expiration_date,nb_manager,publi shed,concerned_plan_id')
                         ->
              values('' $user_id ',\'' $expiration '\',' $_SESSION['managerField']->nb_manager ', 0,' $row->plan_id .'');
              $db->setQuery($query);
              $db->execute(); 
              Encore un problème ridicule qui fait perdre beaucoup de temps,
              merci beaucoup pour votre aide, je suis pas sur que j'aurais utilisé la méthode toString de si tot sans votre intervention

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X