Problème load data infile

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

  • lefabdu51
    a répondu
    En fait le script est placé dans un article grâce au plugin d'insertion de code source, de façon à pouvoir appeler le framework Joomla. L'article est appelé par un lien de menu, et la tache cron dirige vers le lien de menu.
    Un truc, utilise la cli joomla pour créer ta tache cron.
    Ca sera 10 fois plus simple.

    Prend exemple sur un des scripts situés dans le dossier cli de ton joomla.
    tu verras les procédure d'import de classe et le fonctionnement général de la cli.
    Sur mes installations, toutes mes taches cron font appel à un script situé dans ce dossier.
    Et j'utilise le framework joomla.
    Ca fait un bail que je fait comme ca.
    https://extensions.refactory-project...ions-in-joomla



    ta tache cron sera du type sudo -u www-data -c 'php /var/www/html/cli/matache.php'

    LA tu as une liste des scripts et leur utilité en tant que tache cron.
    https://www.a2hosting.com/kb/install...e-command-line

    Et cela evolues en permanence
    https://community.joomla.org/gsoc-20...to-joomla.html

    La tu as une reelle idée de ce que vaux reellement joomla.
    Dernière édition par lefabdu51 à 10/05/2019, 19h14

    Laisser un commentaire:


  • Minie
    a répondu
    Merci pour vos réponses

    Envoyé par roland_d_alsace Voir le message
    Mais sans l'erreur au complet (fichier et numéro de ligne), impossible de t'aider.
    C'est justement ca mon problème, l'affichage des erreurs est en mode dev et je n'ai rien de plus, voici la totalité de l'erreur :

    Code:
    [B]Notice[/B]: Undefined property: Joomla\CMS\Document\ErrorDocument::$params in [B]***/templates/***/error.php[/B] on line [B]34[/B]
    Error: Call to a member function get() on null:
    Envoyé par roland_d_alsace Voir le message
    Si je comprend bien, ton script est lance par une tache cron et est autonome (donc lancé avec appel du framework de Joomla mais hors CMS).
    En fait le script est placé dans un article grâce au plugin d'insertion de code source, de façon à pouvoir appeler le framework Joomla. L'article est appelé par un lien de menu, et la tache cron dirige vers le lien de menu.

    Envoyé par roland_d_alsace Voir le message
    Si tu as accès aux logs regarde dans les logs d'erreur de php.
    En fait les logs disent la même chose que sur la page, ils renvoient au fichier error.php, sauf qu'ils ne donnent pas la seconde partie :

    Code:
    AH01071: Got error 'PHP message: PHP Notice: Undefined property: Joomla\\CMS\\Document\\ErrorDocument::$params in [URL="https://gixia.agency:8443/smb/file-manager/code-editor?currentDir=%2Fzone5.gixia.fr%2Fvar%2Fwww%2Fvhosts%2Fgixia.fr%2Fzone5.gixia.fr%2Ftemplates%2Frayonjantes&file=error.php&redirect=%2Fsmb%2Flog-file%2Fbrowser%2Fid%2F9"]***/templates/***/error.php[/URL] on line 34\n'
    Envoyé par roland_d_alsace Voir le message
    Autre chose : as-tu testé ta requête sql avec phpmyadmin ?
    Oui, tous les matins, je lance moi même la requête dans php my admin pour ensuite lancer manuellement le reste du script :'(

    Voici la ligne 34 du fichier error.php en question, ce n'est pas moi qui l'ai écrite, je me sert de template creator CK

    Code PHP:
    <?php if ($this->params->get('useresponsive','1')) { ?>
    Dernière édition par Minie à 09/05/2019, 09h51

    Laisser un commentaire:


  • roland_d_alsace
    a répondu
    Ce type d'erreur correspond à une classe qui n'a pas pu être instanciée.

    Mais sans l'erreur au complet (fichier et numéro de ligne), impossible de t'aider.

    Si je comprend bien, ton script est lance par une tache cron et est autonome (donc lancé avec appel du framework de Joomla mais hors CMS).

    Si tu as accès aux logs regarde dans les logs d'erreur de php.
    Sinon demande l'affichage des erreurs php en début de script.

    Autre chose : as-tu testé ta requête sql avec phpmyadmin ?
    Dernière édition par roland_d_alsace à 08/05/2019, 13h00

    Laisser un commentaire:


  • Minie
    a répondu
    Salut,

    merci pour ta réponse, dans le doute j'ai quand même fait des tests pour répondre à tes questions.

    L'erreur se produit avec le chemin relatif comme absolu.
    L'erreur n'est pas SQL, la requête est correcte, elle fonctionnait très bien je n'y ai rien changé et je la fait en manuel à partir de php my admin tous les matin en attendant de régler le problème.

    Toujours pas trouvé de solution

    Laisser un commentaire:


  • Wismer
    a répondu
    Salut
    LOAD DATA LOCAL INFILE "components/com_gixia/upload/pneus/'.$fichier.'"
    2 questions.
    Es tu sur que c'est un chemin relatif qu'il faut mettre et non un chemin absolu?
    Quand je regarde la doc mysql, je ferai aussi attention au quote, doublequote et backquote.


    Apres, je ne suis pas tres a l'aise avec ce type de programmation.

    ++
    wis

    Laisser un commentaire:


  • Minie
    a répondu
    Bonjour et merci pour ta réponse.

    oui, sur et certaine, ca me semble aussi très illogique, c'est pour ca que je ne trouve pas le souci.

    si je mets la ligne execute en commentaire, plus d'erreur (mais pas de requête non plus bien sur)

    si je remplace toute la requête par un select ou autre requête classique, plus d'erreur...

    et surtout l'erreur ne donne pas plus de précisions même en mode dev bien sûr

    en fait sauf si j'avais oublié le jFactory getDbo, je ne vois pas de rapport entre le type d'erreur et la partie posant problème

    Laisser un commentaire:


  • cavo789
    a répondu
    Bonjour

    Juste une précision s'il te plaît : ton erreur est " Error: Call to a member function get() on null:" mais ton code ne mentionne aucune méthode get(). Est-ce que le code que tu postes est bien celui qui génère l'erreur (==> lors de la mention de l'erreur il est aussi fait, normalement, mention d'un numéro de ligne; tu es certaine d'avoir posté la bonne partie du code?)

    Bonne journée.

    Laisser un commentaire:


  • Minie
    a crée un sujet [RÉGLÉ] Problème load data infile

    Problème load data infile

    Bonjour,

    j'avais créé un script il y a un bon moment maintenant, qui fonctionnait très bien, tous les jours par tache cron, puis du jour au lendemain, une erreur est apparue.

    L'erreur est : Error: Call to a member function get() on null:
    La partie du code concernée :
    Code PHP:
    $db JFactory::getDBO();
    $query 'LOAD DATA LOCAL INFILE "components/com_gixia/upload/pneus/'.$fichier.'"
                    REPLACE
                    INTO TABLE #__gixia_upload_pneus
                    FIELDS
                      TERMINATED BY ";"
                      ENCLOSED BY ""
                      ESCAPED BY "\"
                    LINES
                      STARTING BY ""
                      TERMINATED BY "\\n"
                      IGNORE 1 LINES (code,itemcode,description,type,marque_code,marque,groupe,groupe_desc,e_mark,european,largeur,ratio,diametre,charge_vitesse,prix_fournisseur,gross,stock,eancode,ip_code,photo,consomation,adherence,bruit_db,bruit_lvl,poids)'
    ;

                      echo 
    $query;

                
    $db->setQuery($query);
                
    $db->execute(); 
    Si je remplace la requête load data par une requête basique de type select, aucun plantage, mais il ne veut plus de mon load data ...

    Si quelqu'un a une idée ca serait top, merci beaucoup d 'avance !
    Dernière édition par Minie à 01/07/2019, 10h47

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X