Mysql
 sql >> Database >  >> RDS >> Mysql

Come faccio a importare un file .sql nel database mysql usando PHP?

Avviso: mysql_* l'estensione è deprecata a partire da PHP 5.5.0 ed è stata rimossa a partire da PHP 7.0.0. Invece, il mysqli o PDO_MySQL dovrebbe essere utilizzata l'estensione. Vedi anche la Panoramica API MySQL per ulteriore assistenza nella scelta di un'API MySQL.
Ove possibile, l'importazione di un file in MySQL dovrebbe essere delegata al client MySQL.

Ho un altro modo per farlo, prova questo

<?php

// Name of the file
$filename = 'churc.sql';
// MySQL host
$mysql_host = 'localhost';
// MySQL username
$mysql_username = 'root';
// MySQL password
$mysql_password = '';
// Database name
$mysql_database = 'dump';

// Connect to MySQL server
mysql_connect($mysql_host, $mysql_username, $mysql_password) or die('Error connecting to MySQL server: ' . mysql_error());
// Select database
mysql_select_db($mysql_database) or die('Error selecting MySQL database: ' . mysql_error());

// Temporary variable, used to store current query
$templine = '';
// Read in entire file
$lines = file($filename);
// Loop through each line
foreach ($lines as $line)
{
// Skip it if it's a comment
if (substr($line, 0, 2) == '--' || $line == '')
    continue;

// Add this line to the current segment
$templine .= $line;
// If it has a semicolon at the end, it's the end of the query
if (substr(trim($line), -1, 1) == ';')
{
    // Perform the query
    mysql_query($templine) or print('Error performing query \'<strong>' . $templine . '\': ' . mysql_error() . '<br /><br />');
    // Reset temp variable to empty
    $templine = '';
}
}
 echo "Tables imported successfully";
?>

Questo funziona per me