Insert data d'un fichier csv en db
Bonjour,
Je débute en php et j'aimerai insert des données d'un csv dans ma db mais je ne suis pas sûr de ma démarche, en outre j'ai plein d'erreurs du style "Undefined offset" etc.
Voici mon code
Lire le fichier csv et le renvoyer sous forme de tableau
Insert dans la Db
Je débute en php et j'aimerai insert des données d'un csv dans ma db mais je ne suis pas sûr de ma démarche, en outre j'ai plein d'erreurs du style "Undefined offset" etc.
Voici mon code
Lire le fichier csv et le renvoyer sous forme de tableau
public function csv_convert($csvfile){ //??
$tab = file($csvfile);
if(file_exists($csvfile)){
foreach ($tab as $i => $value) {
preg_match('/(.*);(.*);(.*);(.*)/', $value, $result);
$tab[$i] = new Dog($result[1],$result[2],$result[3],substr($result[4],1,-1));
}
}
return $tab;
}
Insert dans la Db
public function insert(){
$ad = new Admin();
$file = CONF . 'dog.csv';
$tab = $ad->csv_convert($file);
$query = '';
foreach ($tab as $i => $value) {
$query = 'INSERT INTO dogs (mail) VALUES ('. $this->_db->quote($value) .')';
}
$this->_db->prepare($query)->execute();
}
1 réponse
-
ModérateurBonjour,
Pourquoi ne pas commencer par :
https://www.php.net/manual/fr/function.fgetcsv.php
puis également :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
-
-
Modérateur@helloword95La "syntaxe" pour faire l'insertion en bdd
En sql :INSERT INTO table (nom_colonne_1, nom_colonne_2, ... VALUES ('valeur 1', 'valeur 2', ...)
Dans du code php (en pdo par exemple)
$query = "INSERT INTO table (nom_colonne_1, nom_colonne_2) VALUES (:valeur1, :valeur2)"; $datas = array(':valeur1'=>$valeur1,':valeur2'=>"qqchose d'autre"); try{ $prepare = $this->_db->prepare($query); $prepare->execute($datas ); }catch(Exception $e){ echo "Erreur : " .$e->getMessage(); }
-