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 :

Fichier créé à partir d'un SELECT INTO OUTFILE [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 350
    Points : 149
    Points
    149
    Par défaut Fichier créé à partir d'un SELECT INTO OUTFILE
    Bonjour à tous,

    Je n'arrive pas a comprendre ce que je dois faire sur un hébergement mutualisé pour récupérer un export de table à l'aide d'un script.

    Le script export.php doit actualiser un fichier prestashop.csv
    Le fichier prestashop.csv est placé dans le répertoire www mais il reste vide.
    export.php est également placé dans www .

    Donc pour lancer le script export.php je fait www.machin.com/export.php
    mais prestashop.csv reste désespérément vide.
    le fichier prestashop.csv a des droits 777.

    Je vois pas trop comment m'y prendre car sur mon local cela fonctionne parfaitement.

    Merci pour l'aide.

    Voici mon script:
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?php
    // Connexion master sur $connexion2
    try {
    $connexion = new PDO('mysql:host=xxxxxx;dbname=xxxxx', 'xxxx', 'xxxxx');
    $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e)
    {
         echo $e->getMessage();
    }
     
     
    $file_name = 'prestashop.csv';
    $stmt = $connexion->query("SELECT * FROM ps_orders");
    $count = $stmt->rowCount();
    $stmt_dsp = $stmt->fetch(PDO::FETCH_OBJ);
     
    if(!empty($count)){
    		  if (file_exists($file_name))
    		  {
    			unlink($file_name);
     
    		  $export = $connexion->query("
    		  SELECT 
    		  'Ref commande', 
    		  'ID client', 
    		  'Nom', 
    		  'Prenom', 
    		  'Adresse', 
    		  'Adresse 2', 
    		  'Ville', 
    		  'Code postal', 
    		  'Pays', 
    		  'Email',
    		  'Telephone',
    		  'Urgent',
    		  'Remarques',
    		  'Code article',
    		  'Quantite',
    		  'Date livraison'
    		  
    		  UNION ALL
    		    
    		  
    		  SELECT 
    		  ps_orders.reference, 
    		  ps_address.company, 
    		  ps_address.lastname, 
    		  ps_address.firstname, 
    		  ps_address.address1, 
    		  ps_address.address2, 
    		  ps_address.city, 
    		  ps_address.postcode,
    		  ps_country.iso_code,
    		  ps_customer.email,
    		  ps_address.phone,
    		  '',
    		  '',
    		  ps_product.reference,
    		  ps_cart_product.quantity,
    		  ''  
    		   		  
    		  
     INTO OUTFILE '$file_name' 
     FIELDS TERMINATED BY ';' 
     LINES TERMINATED BY '\n' 
     FROM ps_cart_product 
     LEFT JOIN ps_product ON (ps_cart_product.id_product = ps_product.id_product) 
     LEFT JOIN ps_orders ON (ps_orders.id_cart = ps_cart_product.id_cart) 
     LEFT JOIN ps_customer ON (ps_orders.id_customer = ps_customer.id_customer) 
     LEFT JOIN ps_cart ON (ps_cart.id_cart = ps_cart_product.id_cart) 
     LEFT JOIN ps_address ON (ps_cart.id_address_delivery = ps_address.id_address) 
     LEFT JOIN ps_country ON (ps_country.id_country = ps_address.id_country) 
    
     GROUP BY
     		  ps_orders.reference, 
    		  ps_address.company, 
    		  ps_address.lastname, 
    		  ps_address.firstname, 
    		  ps_address.address1, 
    		  ps_address.address2, 
    		  ps_address.city, 
    		  ps_address.postcode,
    		  ps_country.iso_code,
    		  ps_customer.email,
    		  ps_address.phone,
    		  ps_product.reference,
    		  ps_cart_product.quantity
     
    
     ");
     
    		  }
    }

  2. #2
    Membre habitué Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 350
    Points : 149
    Points
    149
    Par défaut
    Réponse du SAV OVH : les requêtes SELECT INTO OUTFILE ne sont pas autorisées sur les hébergements mutualisés.

    Il me reste 2 choix:
    - Passer en SQL privé
    - fputcsv

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

Discussions similaires

  1. [MySQL] SELECT INTO OUTFILE sans ecraser le fichier
    Par Eliatron dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 19/06/2017, 10h26
  2. Réponses: 5
    Dernier message: 25/05/2016, 15h18
  3. [Sauvegarde] SELECT * INTO OUTFILE ou bien Mysqldump ?
    Par mathieu dans le forum Administration
    Réponses: 17
    Dernier message: 25/04/2013, 16h58
  4. Erreur 1045 avec select into outfile
    Par mikaelm dans le forum Administration
    Réponses: 7
    Dernier message: 18/08/2005, 14h45
  5. syntaxe "SELECT * INTO OUTFILE....
    Par mick84m dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/04/2005, 09h53

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