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 ;
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!