Maison > base de données > tutoriel mysql > Comment puis-je exécuter efficacement des fichiers *.sql externes dans mes applications PHP ?

Comment puis-je exécuter efficacement des fichiers *.sql externes dans mes applications PHP ?

Patricia Arquette
Libérer: 2024-12-12 12:48:14
original
139 Les gens l'ont consulté

How Can I Effectively Execute External *.sql Files Within My PHP Applications?

Exécuter des fichiers *.sql en PHP : explorer des solutions

L'exécution de fichiers .sql directement à partir de PHP pose des défis uniques en raison de certains cas extrêmes. Les instructions courantes dans les scripts .sql peuvent ne pas être reconnues comme des instructions SQL.

Solution préférée : tirer parti de l'outil MySQL

L'approche la plus efficace consiste à utiliser l'outil mysql et invoquez-le depuis PHP en utilisant des fonctions comme shell_exec(). Cela garantit la compatibilité avec toutes les instructions.

Exemple de code utilisant shell_exec()

$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"');
Copier après la connexion

Shell_exec() contre exec()

Bien que shell_exec() et exec() exécutent tous deux des commandes externes, shell_exec() exécute la commande dans un sous-shell, tandis que exec() exécute la commande dans le processus en cours et ne revient pas tant que la commande n'est pas terminée.

Autres considérations

Pour des opérations de base de données étendues, envisagez d'utiliser une couche d'abstraction de base de données comme Zend_Db ou Doctrine. Ces couches offrent un moyen plus pratique et plus fiable d'interagir avec les bases de données en PHP.

Ressources associées :

  • [Chargement de fichiers .sql depuis PHP](https://stackoverflow.com/questions/2586/loading-sql-files-from-within-php)
  • [Est-il possible d'appeler un script SQL à partir d'une procédure stockée dans un autre SQL script ?](https://dba.stackexchange.com/questions/216678/is-it-possible-to-call-a-sql-script-from-a-stored-procedure-in-another-sql-script)
  • [PHP : plusieurs requêtes SQL dans une seule mysql_query déclaration](https://stackoverflow.com/questions/27075986/php-multiple-sql-queries-in-one-mysql-query-statement)

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!

source:php.cn
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