Importation de donnée *.cvs
Résolu
poparnassus
Messages postés
426
Date d'inscription
Statut
Membre
Dernière intervention
-
poparnassus Messages postés 426 Date d'inscription Statut Membre Dernière intervention -
poparnassus Messages postés 426 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je rencontre des probleme lors de l'importation d'un fichier *.cvs dans la base de données. Comment remedié a ce probleme ?
config:
NAS synology ds414j
PhpMySql
je suis admin sur le nas
code erreur:
#EDIT
Pour l'acces a ma base de donné jutilise root sans mot de passe, es que je devrais mettre un mdp ?
Je rencontre des probleme lors de l'importation d'un fichier *.cvs dans la base de données. Comment remedié a ce probleme ?
config:
NAS synology ds414j
PhpMySql
je suis admin sur le nas
LOAD DATA LOCAL INFILE '/volume1/homes/.../tuto.csv'
INTO TABLE Reporting.personnes
FIELDS TERMINATED BY ';'
ENCLOSED BY ''
LINES TERMINATED BY '\r\n';
code erreur:
Requête SQL :
LOAD DATA LOCAL INFILE '/volume1/homes/.../tuto.csv'
INTO TABLE Reporting.personnes
FIELDS TERMINATED BY ';'
ENCLOSED BY ''
LINES TERMINATED BY '\r\n'
MySQL a répondu: Documentation
#2000 - open_basedir restriction in effect. Unable to open file
#EDIT
Pour l'acces a ma base de donné jutilise root sans mot de passe, es que je devrais mettre un mdp ?
A voir également:
- Importation de donnée *.cvs
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- Supprimer les données de navigation - Guide
- Tortoise cvs - Télécharger - Langages
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum MacOS
- La base de données de sécurité du serveur n'a pas de compte d'ordinateur pour la relation ✓ - Forum Réseau
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, c'est la localisation du fichier (/volume1/homes/.../tuto.csv) qui pose problème.
peux-tu mettre le fichier à importer au même endroit que tes scripts php?
peux-tu mettre le fichier à importer au même endroit que tes scripts php?
Bon j'ai trouver un site qui dit ceci:
le sitte == https://www.infomaniak.com/fr/support/faq/1312/mysql-fonction-load-data-local-infile
Pour lutter contre les actes de malveillances et continuer à protéger autant que possible les données de nos clients, nous avons désactivé la fonction "LOAD DATA LOCAL INFILE".
Ne sont pas concernées par cette modification les personnes important leurs fichiers CSV (à condition de ne pas cocher "CSV via LOAD DATA") via phpMyAdmin.
La fonction "LOAD DATA LOCAL INFILE" permet d'importer un fichier CSV dans une table MySQL et est malheureusement désormais fréquemment utilisée par les pirates pour obtenir l'accès à certains sites hébergés sur des machines acceptant cette fonction.
Nous fournissons bien entendu une alternative pour continuer à importer des données au format CSV dans une table MySQL. Ci-dessous, un exemple en quelques lignes PHP faciles à implémenter dans votre script PHP ou créez simplement un nouveau fichier PHP dans votre répertoire /web:
le sitte == https://www.infomaniak.com/fr/support/faq/1312/mysql-fonction-load-data-local-infile
Pour lutter contre les actes de malveillances et continuer à protéger autant que possible les données de nos clients, nous avons désactivé la fonction "LOAD DATA LOCAL INFILE".
Ne sont pas concernées par cette modification les personnes important leurs fichiers CSV (à condition de ne pas cocher "CSV via LOAD DATA") via phpMyAdmin.
La fonction "LOAD DATA LOCAL INFILE" permet d'importer un fichier CSV dans une table MySQL et est malheureusement désormais fréquemment utilisée par les pirates pour obtenir l'accès à certains sites hébergés sur des machines acceptant cette fonction.
Nous fournissons bien entendu une alternative pour continuer à importer des données au format CSV dans une table MySQL. Ci-dessous, un exemple en quelques lignes PHP faciles à implémenter dans votre script PHP ou créez simplement un nouveau fichier PHP dans votre répertoire /web:
<?
// Le code proposé ci-dessus ne l'est qu'à titre d'exemple pour que vous puissiez
// comprendre comment remplacer cette fonction, libre à vous de développer
// votre propre moyen plus efficace pour insérer des données.
$NomDuFichier = "data.csv";
// ouverture du fichier csv en lecture
$handle = fopen($NomDuFichier, "r");
if ($handle) {
// decomposition de chaque ligne du fichier csv
while (($data = fgetcsv($handle, 1000, ";", """)) !== FALSE) {
$num = count($data)-1;
// generation de la requete SQL
$query = "INSERT INTO `test` VALUES (";
for ($c=0; $c < $num; $c++) {
$query .= "'" . mysql_real_escape_string($data[$c]) ."',";
}
$query .= "'" . mysql_real_escape_string($data[$num]) ."')";
// insertion de la ligne dans la base MySQL
mysql_query($query, $link) or die (mysql_error());
$query = NULL;
}
// fermeture du fichier csv
fclose($handle);
} else {
echo "<p>Erreur: impossible d'ouvrir le fichier.</p>\n";
exit(1);
}
?>
avec ses acces là (jai suivi un tuto)
localhost
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, INDEX, ALTER, CREATE TEMPORARY TABLES
erreur toujours presente
J'ai essayer plein de repertoire toujour la meme errerur
/home = erreur
/home/www = erreur
/homes/Mon_user = erreur
/homes/Mon_user/www = erreur
/web = erreur
/web/Mon_site = erreur
/web/Mon_site/php erreur
le fichier user_setting.ini
open_basedir = /tmp:/var/services/tmp:/var/services/web:/var/services/homes
Je comprends pas ...
Par contre si je limporte depuis linterface phpmyadmin ca marche, mais etant doner que je vais devoir importer une base qui fait des million de ligne je dois passer par la console
/tmp
/var/services/tmp
/var/services/web
/var/services/homes