Maison >développement back-end >tutoriel php >Comment puis-je exécuter des fichiers MySQL .sql à partir de PHP ?

Comment puis-je exécuter des fichiers MySQL .sql à partir de PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-01 13:18:12193parcourir

How Can I Run MySQL .sql Files from PHP?

Exécuter des fichiers MySQL *.sql à partir de PHP

L'exécution de fichiers .sql à partir de PHP peut présenter des défis, en particulier lors de l'automatisation du site. génération. Bien qu'il n'existe aucun moyen direct d'exécuter des scripts .sql en PHP, l'appel de l'outil MySQL à l'aide de shell_exec() peut fournir une solution.

Méthode d'exécution du shell

En utilisant shell_exec(), vous pouvez construire une commande qui appelle l'outil mysql avec les indicateurs appropriés et paramètres :

$command = 'mysql'
        . ' --host=' . $vals['db_host']
        . ' --user=' . $vals['db_user']
        . ' --password=' . $vals['db_pass']
        . ' --database=' . $vals['db_name']
        . ' --execute="SOURCE ' . $script_path;

Passer le nom du fichier avec --execute="SOURCE..." garantit que le fichier est exécuté. Cependant, notez que l'utilisation de shell_exec() nécessite que vous fournissiez un accès à la console, qui peut ne pas être disponible dans certains environnements.

Méthode alternative

Pour une solution plus flexible qui fonctionne sur les plateformes Windows et UNIX, vous pouvez utiliser la commande suivante :

$command = "mysql --user={$vals['db_user']} --password='{$vals['db_pass']}' "
 . "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";

Cette commande appelle directement le fichier .sql à l'aide du opérateur inférieur à (<). Il ne nécessite pas d'accès à la console et fournit une méthode fiable pour exécuter des fichiers .sql à partir de scripts 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn