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 :
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 :
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à.
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
Partager