Exécuter des fichiers MySQL *.sql à partir de PHP
L'exécution de fichiers .sql à partir de PHP peut présenter des défis, en particulier lors de l'automatisation du site. génération. Bien qu'il n'existe aucun moyen direct d'exécuter des scripts .sql en PHP, l'appel de l'outil MySQL à l'aide de shell_exec() peut fournir une solution.
Méthode d'exécution du shell
En utilisant shell_exec(), vous pouvez construire une commande qui appelle l'outil mysql avec les indicateurs appropriés et paramètres :
$command = 'mysql' . ' --host=' . $vals['db_host'] . ' --user=' . $vals['db_user'] . ' --password=' . $vals['db_pass'] . ' --database=' . $vals['db_name'] . ' --execute="SOURCE ' . $script_path;
Passer le nom du fichier avec --execute="SOURCE..." garantit que le fichier est exécuté. Cependant, notez que l'utilisation de shell_exec() nécessite que vous fournissiez un accès à la console, qui peut ne pas être disponible dans certains environnements.
Méthode alternative
Pour une solution plus flexible qui fonctionne sur les plateformes Windows et UNIX, vous pouvez utiliser la commande suivante :
$command = "mysql --user={$vals['db_user']} --password='{$vals['db_pass']}' " . "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";
Cette commande appelle directement le fichier .sql à l'aide du opérateur inférieur à (<). Il ne nécessite pas d'accès à la console et fournit une méthode fiable pour exécuter des fichiers .sql à partir de scripts PHP.
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!