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

Langage PHP Discussion :

Script PHP qui effectue un insert


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 41
    Points : 17
    Points
    17
    Par défaut Script PHP qui effectue un insert
    Bonjour,

    je lance dans un programme vba un script PHP qui construit et execute une requete SQL a partir d'un fichier CSV.

    le script évalue la première ligne du fichier CSV (qui contient les nom de colonne de la table) pour créer la requete.
    j'ai ajouter une colonne dans le fichier csv avec des valeurs pour celle-ci.

    Le soucis est que ma colonne reste a null dans la table.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
     
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    require_once 'config.inc.php';
    require_once 'class/Sync.php';
     
    $file = fopen("sqd_data.csv", 'r');
    while (!feof($file)) {
        $line[] = fgetcsv($file, 1024);
    }
    fclose($file);
     
    //print_r($line);
    $sync = new sync(HOST, NAME, PASS, BASE, PORT);
    $db = $sync->db;
    // "INSERT INTO suivi_quotidien_drive (COL1, COL2) VALUES (:COL1, :COL2) ON DUPLICATE KEY UPDATE dataJour=VALUES(dataJour) and ManqueAGagner=VALUES(ManqueAGagner);"
    $req = "INSERT INTO suivi_quotidien_drive2 (";
    $req2 = "";
    $bFirst = true;
    //$line[0][0]=RefdriveEAN;Categorie;Sous categorie;Segment;Marque;EAN;PCB;Nomproduit;Statut;Enseigne;Refdrive;SCA;Magasin;Adresse;CP;Ville;Visite;Div;Vendeur;CV;dataJour
    $header = $line[0];
     
    $i = 1;
    foreach ($header as $head) {
        if ($bFirst) {
            $req .= "`" . $head . "`";
            //$req2 .= ":" . $i;
            $req2 .= "?";
            $i++;
            $bFirst = false;
        } else {
            $req .= ",`" . $head . "`";
            //$req2 .= ", :" . $i;
            $req2 .= ",?";
            $i++;
        }
    }
    $req .= ") VALUES (" . $req2 . ") ON DUPLICATE KEY UPDATE dataJour=VALUES(dataJour);";
    //echo $req;
    //echo "<br>";
    $test = $db->prepare($req);
    file_put_contents('exemple.txt', $req);
     
    foreach ($line as $icpt => $value) {
        if ($icpt > 0 && (count($header) == count($value))) {
            if(!$test->execute($value)){
                print_r($test->errorInfo());
                echo "<br>";
            }
        }
    }
     
    echo "ok";
    j'essai de vous télécharger le fichier CSV mais ça marche pas.

    une idée déja sur le code ? comment savoir si la requete est bien exécutée ?

    le script php se lance bien car il crée bien mon fichier exemple avec la requete dedans, elle n'est pas bonne regardez :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO suivi_quotidien_drive2 (`RefdriveEAN`,`Categorie`,`Sous categorie`,`Segment`,`Marque`,`EAN`,`PCB`,`Nomproduit`,`Statut`,`Enseigne`,`Refdrive`,`SCA`,`Magasin`,`Adresse`,`CP`,`Ville`,`Visite`,`Div`,`Vendeur`,`CV`,`ManqueAGagner`,`dataJour`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE dataJour=VALUES(dataJour);

    pourquoi j'ai rien dans values ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    peut etre que cela pourrait venir du on duplicate key.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 41
    Points : 17
    Points
    17
    Par défaut
    le problème était :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req .= ") VALUES (" . $req2 . ") ON DUPLICATE KEY UPDATE dataJour=VALUES(dataJour), ManqueAGagner=(ManqueAGagner);"

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

Discussions similaires

  1. Stopper un script php qui se prend pour superman
    Par supergrey dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2007, 22h12
  2. Script php qui inclu une page au hasard
    Par adri5656 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 12/04/2007, 02h00
  3. [SQL] Script PHP qui marche pas !
    Par Diabless6 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 12/02/2007, 16h28
  4. Page de login -- script PHP qui ne marche pas
    Par Alexlesilex dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 24/04/2006, 16h32
  5. Réponses: 6
    Dernier message: 16/01/2006, 15h24

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