Importation d'un fichier .sql dans une base de données MySQL à l'aide de PHP
Lorsque vous tentez d'importer un fichier .sql dans une base de données MySQL à l'aide de PHP, un message d'erreur est souvent rencontré, signalant un problème lors de l'importation. Ce message d'erreur inclut des détails sur le nom de la base de données, le nom d'utilisateur, le mot de passe, le nom d'hôte et le nom du fichier d'importation.
Le code fourni dans la question utilise les fonctions mysql_*, qui sont obsolètes depuis PHP 5.5.0. et supprimé dans PHP 7.0.0. Au lieu de cela, des API MySQL alternatives telles que mysqli ou PDO_MySQL doivent être utilisées.
Méthode d'importation alternative utilisant le client MySQL
Déléguer le processus d'importation de fichiers au client MySQL est généralement une approche plus fiable. MySQL fournit des outils de ligne de commande capables de gérer efficacement les importations.
Code PHP amélioré pour importer un fichier .sql
Un code PHP alternatif utilisant une méthode d'importation plus appropriée est fourni. ci-dessous :
<?php // File name $filename = 'churc.sql'; // MySQL host $mysql_host = 'localhost'; // MySQL username $mysql_username = 'root'; // MySQL password $mysql_password = ''; // Database name $mysql_database = 'dump'; // Establish MySQL connection $mysqli = new mysqli($mysql_host, $mysql_username, $mysql_password, $mysql_database); if ($mysqli->connect_error) { echo 'Error connecting to MySQL: ' . $mysqli->connect_error; exit; } // Read entire file $lines = file($filename); // Process each line foreach ($lines as $line) { // Skip comments and empty lines if (substr($line, 0, 2) == '--' || $line == '') { continue; } // Execute query if ($mysqli->query($line)) { echo 'Query successfully executed: ' . $line . '<br>'; } else { echo 'Error executing query: ' . $line . '<br>'; } } echo 'Tables imported successfully'; $mysqli->close(); ?>
Ce code amélioré utilise l'extension mysqli pour se connecter à MySQL et exécuter les requêtes à partir de la ligne de fichier .sql en ligne.
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!