Maison >base de données >tutoriel mysql >Comment puis-je exécuter des scripts SQL à partir de PHP à l'aide de l'outil de ligne de commande MySQL ?

Comment puis-je exécuter des scripts SQL à partir de PHP à l'aide de l'outil de ligne de commande MySQL ?

DDD
DDDoriginal
2024-12-19 05:48:38676parcourir

How Can I Execute SQL Scripts from PHP Using the MySQL Command-Line Tool?

Intégration de scripts SQL dans PHP : un guide détaillé

Introduction

Exécuter directement des scripts SQL de PHP présente un défi en raison des limitations et des cas extrêmes rencontrés avec l'exécution directe. Par conséquent, l'utilisation d'un outil externe, tel que l'outil CLI de MySQL, devient nécessaire.

Exécuter des fichiers *.sql avec shell_exec()

Pour exécuter des fichiers *.sql dans PHP, l'approche suivante utilisant shell_exec() est recommandée :

$command = 'mysql'
    . ' --host=' . $vals['db_host']
    . ' --user=' . $vals['db_user']
    . ' --password=' . $vals['db_pass']
    . ' --database=' . $vals['db_name']
    . ' --execute="SOURCE ' . $script_path
;
$output1 = shell_exec($command . '/site_db.sql"');
$output2 = shell_exec($command . '/site_structure.sql"');

Supplémentaire Considérations

Il convient de noter que le format --option=value est plus robuste pour spécifier les options MySQL CLI. De plus, --execute="SOURCE ..." peut être utilisé pour spécifier l'exécution du fichier.

Différences entre shell_exec() et exec()

Alors que les deux shell_exec () et exec() permettent l'exécution de commandes externes, shell_exec() garantit que l'intégralité du script est exécutée, capturant sa sortie. Exec(), en revanche, ne renvoie que la dernière ligne de sortie.

Questions et ressources connexes

  • Pour des méthodes alternatives, reportez-vous à Ignacio Vazquez -Réponse d'Abrams.
  • Consultez ces questions liées à Stack Overflow pour plus d'informations. insights :

    • Chargement de fichiers .sql depuis PHP
    • Exécution de scripts SQL avec des procédures stockées
    • Plusieurs requêtes SQL dans une seule instruction mysql_query

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