Maison >base de données >tutoriel mysql >Pourquoi ne puis-je pas utiliser LOAD DATA LOCAL INFILE en PHP ?
Restriction LOAD DATA LOCAL INFILE en PHP
Le chargement de données à partir d'un fichier local à l'aide de LOAD DATA LOCAL INFILE peut être une fonctionnalité pratique pour importer des données . Cependant, dans certains cas, les utilisateurs peuvent rencontrer un problème lorsqu'ils tentent de l'exécuter via PHP.
Restrictions PHP avec LOAD DATA LOCAL INFILE
PHP restreint l'utilisation de LOAD DATA LOCAL INFILE en raison de problèmes de sécurité. L'opération de lecture de fichier local est considérée comme une vulnérabilité de sécurité potentielle, c'est pourquoi PHP interdit son exécution. Par défaut, les applications PHP ne disposent pas des privilèges nécessaires pour accéder aux fichiers locaux.
Résoudre le problème
Pour résoudre ce problème, les utilisateurs doivent activer les autorisations de lecture des fichiers locaux. pour PHP. Ceci peut être réalisé en définissant l'attribut PDO::MYSQL_ATTR_LOCAL_INFILE sur true lors de l'instanciation de l'objet PDO.
Exemple de code
L'extrait de code suivant montre comment définir le PDO ::Attribut MYSQL_ATTR_LOCAL_INFILE :
<code class="php">$conn = new PDO("mysql:host=$server;dbname=$database;", "$user", "$password", array( PDO::MYSQL_ATTR_LOCAL_INFILE => true, ));</code>
Une fois cet attribut activé, l'opération LOAD DATA LOCAL INFILE devrait s'exécuter avec succès à partir des applications PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!