Maison > base de données > tutoriel mysql > Comment puis-je exécuter des fichiers MySQL *.sql à partir de PHP à l'aide de shell_exec() ?

Comment puis-je exécuter des fichiers MySQL *.sql à partir de PHP à l'aide de shell_exec() ?

Patricia Arquette
Libérer: 2024-12-10 15:45:16
original
489 Les gens l'ont consulté

How Can I Execute MySQL *.sql Files from PHP Using shell_exec()?

Exécution de fichiers MySQL *.sql en PHP

Lors de la création de bases de données de sites Web, vous pouvez rencontrer des scénarios dans lesquels vous devez exécuter . fichiers sql de PHP pour automatiser la génération de sites. Bien que Zend_Framework puisse être bénéfique, exécuter des fichiers .sql directement depuis PHP peut être difficile en raison d'incohérences dans les instructions SQL.

Solution : Utiliser shell_exec()

L'approche recommandée consiste à appeler l'outil MySQL à l'aide de shell_exec() pour exécuter votre script *.sql. Voici un exemple :

$command = 'mysql'
        . ' --host=' . $vals['db_host']
        . ' --user=' . $vals['db_user']
        . ' --password=' . $vals['db_pass']
        . ' --database=' . $vals['db_name']
        . ' --execute="SOURCE ' . $script_path
;
Copier après la connexion

Cette commande crée une commande d'exécution MySQL avec les paramètres nécessaires pour exécuter le fichier *.sql spécifié dans $script_path.

Différences entre shell_exec() et exec()

Bien que les deux fonctions exécutent des commandes externes, elles présentent certaines distinctions. shell_exec() capture la sortie de la commande et la renvoie sous forme de chaîne, tandis que exec() renvoie l'état d'exécution de la commande. Dans ce cas, shell_exec() est préférable pour obtenir le résultat de la commande MySQL.

Considérations supplémentaires

Lors de l'exécution de fichiers *.sql, assurez-vous que la commande inclut tous les paramètres nécessaires (db_host, db_user, db_pass, db_name) et vous disposez des autorisations suffisantes pour exécuter le script. De plus, utilisez l'option --execute="SOURCE ..." au lieu de < pour exécuter le fichier.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal