Maison >développement back-end >tutoriel php >Comment puis-je automatiser le remplissage d'une base de données MySQL à partir d'une application PHP à l'aide de fichiers SQL ?

Comment puis-je automatiser le remplissage d'une base de données MySQL à partir d'une application PHP à l'aide de fichiers SQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-09 20:24:25291parcourir

How Can I Automate MySQL Database Population from a PHP Application Using SQL Files?

Exécution de fichiers MySQL *.sql en PHP

Défi : Automatisation de la génération de sites en exécutant deux fichiers *.sql (création de tables et remplissage d'enregistrements ) depuis un PHP application.

Solution :

Bien que l'exécution directe de scripts .sql en PHP présente des limites, l'appel de l'outil MySQL via PHP est une solution efficace.

Utilisation de shell_exec() :

Une approche consiste à utiliser shell_exec() pour exécuter des commandes MySQL.

$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"');

Utilisation du format --option=value :

Pour améliorer la stabilité, utilisez le format --option=value et --execute ="SOURCE..." pour exécuter des fichiers :

$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');

Supplémentaire Remarques :

  • exec() et shell_exec() présentent des différences subtiles.
  • Il existe des cas extrêmes où les instructions de script .sql ne sont pas directement exécutables en tant que SQL.
  • Invoquer MySQL depuis PHP est un moyen fiable de gérer les fichiers .sql.

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