Maison >développement back-end >tutoriel php >Comment exécuter de manière fiable des fichiers MySQL *.sql à partir de PHP ?

Comment exécuter de manière fiable des fichiers MySQL *.sql à partir de PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-30 12:56:16331parcourir

How to Reliably Run MySQL *.sql Files from PHP?

Exécuter des fichiers MySQL *.sql en PHP : une solution efficace

De temps en temps, le sujet de l'exécution de MySQL . fichiers SQL à partir des surfaces PHP. Malheureusement, il n'existe pas de solution simple, car les scripts .sql contiennent souvent des commandes qui ne peuvent pas être exécutées directement en tant qu'instructions SQL.

Les cas extrêmes

Des cas extrêmes surviennent lorsque les scripts *.sql incluent des commandes d'outils mysql intégrées non reconnues par le serveur MySQL. Ces commandes incluent CONNECT, TEE, STATUS et DELIMITER.

Une approche fiable

Pour relever ces défis, il est recommandé d'invoquer l'outil mysql depuis PHP, en utilisant un méthode comme shell_exec(). Cette approche fournit une solution robuste pour exécuter des scripts *.sql.

Exemple de code :

L'exemple de code suivant montre comment exécuter un script *.sql à l'aide de shell_exec( ):

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

$output = shell_exec($command . '/shellexec.sql');

Alternative Approches

Considérez d'autres questions connexes pour des approches alternatives à l'exécution de fichiers *.sql :

  • Chargement de fichiers .sql à partir de PHP
  • Est-il possible de appeler un script SQL à partir d'une procédure stockée dans un autre script SQL ?
  • PHP : plusieurs requêtes SQL dans un mysql_query déclaration

N'oubliez pas de faire preuve de prudence lorsque vous utilisez shell_exec() pour éviter les risques de sécurité potentiels.

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