Bonjour,

Je suis en train d'écrire une requête pour charger rapidement un csv dans ma table mysql. En ligne de commande, le chargement LOAD DATA LOCAL INFILE se fait très rapidement. Par contre lorsque je passe pas un script PHP, j'ai l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Warning: PDOStatement::execute() [pdostatement.execute]: LOAD DATA LOCAL INFILE forbidden in C:\wamp\www\Zend\Db\Statement\Pdo.php on line 230
Ma fonction de chargement est la suivante :

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
 
 
public function charge($chemin,$nomTable,$fields){
 
                $registry = Zend_Registry::getInstance();
		$db = $registry->get('db');
		$insertSQL = $db->prepare("
 
		LOAD DATA LOCAL INFILE '$chemin' 
		INTO TABLE $nomTable
		FIELDS TERMINATED BY ','
		LINES TERMINATED BY '\n'
		($fields); ");
 
		$insertSQL->execute();
}
Lorsque j'enlève le LOCAL dans LOAD DATA j'ai par contre une erreur m'indiquant que ma table existe déjà.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S01]: Base table or view already exists: 1050
Hors si je commente la ligne $insertSQL->execute(); à ce moment j'ai aucune erreur mais aucune donnée n'est insérée !!!

Quelqu'un a t-il une idée d'où peut venir le problème ? Merci