PLEASE HELP: Importer des données CSV dans une base SQL

ViPHP
ViPHP | 5462 Messages

07 déc. 2010, 02:07

c'est c'est pour copier une table vers un autre je te l'ai deja dis, la il faut une requete pour inserer 1 seule entré

Eléphanteau du PHP | 38 Messages

07 déc. 2010, 02:12

Bah oui ...... mais je te dis que je ne vois pas ..... je lis je relis ... mais la je sèche ....

ViPHP
ViPHP | 5462 Messages

07 déc. 2010, 02:15

Bah oui ...... mais je te dis que je ne vois pas ..... je lis je relis ... mais la je sèche ....
qu'est ce que tu comprendra pas dans
INSERT INTO nom_de_table (col1,col2) VALUES(15,col1*2);

:?:

Eléphanteau du PHP | 38 Messages

07 déc. 2010, 02:17

Je dois juste mettre le nom des colonnes en fait ?

Eléphanteau du PHP | 38 Messages

07 déc. 2010, 02:21

bref je lache l'affaire pour ce soir ....
j'ai 26 colonnes dans ma bases licences et le même nombre dans mon fichier CSV ...
bref la je dois être fatigué

ViPHP
ViPHP | 5462 Messages

07 déc. 2010, 02:26

Je dois juste mettre le nom des colonnes en fait ?
oui colonne et valeur, dans la requete PDO les valeur son remplacer par des ?
si t'en a 26 va faaloir ecrire les 26

Eléphanteau du PHP | 38 Messages

07 déc. 2010, 02:35

En gros
dans INSERT INTO licences (IUF, Nom, prénom, adresse....) les 26 comme ça
VALUES (1235, TOTO, Hubert, 1 rue de la paix.....) les 26 comme ça

.....

Eh bien merci je vais essayer demain ;)

bonne soirée

Eléphanteau du PHP | 38 Messages

07 déc. 2010, 22:28

BONSOIR,

j'ai réussi à faire ce que je voulais sur mon PC et ce soir je rentre sur mon j'adapte ma connection de base ... (juste à mettre "root" en mot de passe)

ET LA CA NE MARCHE PLUS ....

Je ne comprends pas

mon code php:
<?php

$dbh = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', 'root') or die (mysql_error ());

$file = new SplFileObject('licencies.ffn') or die (mysql_error ());
$file->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY) or die (mysql_error ());
$file->setCsvControl('|');


$dbh->exec("TRUNCATE TABLE licences") or die (mysql_error ());
$stmt = $dbh->prepare("INSERT INTO licences (IUF, club, Civilite, Prenom, Nom, in1, Sexe, Nationalite, Naissance, adresse1, adresse2, CP, Ville, Pays, Telephone, in2, Licence, in3, Type_lic, type_lic2, evo_licence, in4, in5, in6, date_lic1, date_lic2, date_lic3, date_lic4, date_lic5, date_lic6, date_lic7, date_lic8) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") or die (mysql_error ());    

foreach($file as $row)
{
    $stmt->execute($row);
}


?>

MERCIII

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 déc. 2010, 00:42

Soir,

Vire les or die derriere les instanciations de classe ca sert a rien !

Ca ne marche plus c'est un bon symptome sansnmessage d'erreur. Par defaut y a pas de mot passe a voir si il n'y a pas un soucis d'ortographe dessus. A tu un message d'erreur ? Tu de devrais "attrapper" les execptions (voir les exemples) afin d'avoir les eventuelles erreurs !

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 38 Messages

08 déc. 2010, 01:04

Merci moogli

Effectivement c'est localhost le nom ... mais maintenant je n'ai plus aucun message d'erreur ....et rien ne se passe
les drivers PDO sont bien lancés .... étrange

Peut être définir un port car sous mamp mac c'est http://localhost:8888/

ViPHP
ViPHP | 5462 Messages

08 déc. 2010, 11:15

Merci moogli

Effectivement c'est localhost le nom ... mais maintenant je n'ai plus aucun message d'erreur ....et rien ne se passe
les drivers PDO sont bien lancés .... étrange

Peut être définir un port car sous mamp mac c'est http://localhost:8888/
pourquoi avoir mis des "die" et envleve le bloque try...catch ?

l'extgension mysql_* et PDO c'est 2 chose differentes