Maison >base de données >tutoriel mysql >Comment puis-je exécuter efficacement des fichiers *.sql externes dans mes applications PHP ?
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"');
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 :
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!