sql >> Database >  >> RDS >> Mysql

Hoe importeer ik een .sql-bestand in de mysql-database met behulp van PHP?

Waarschuwing: mysql_* extensie is verouderd vanaf PHP 5.5.0 en is verwijderd vanaf PHP 7.0.0. In plaats daarvan, ofwel de mysqli of PDO_MySQL extensie moet worden gebruikt. Zie ook het MySQL API-overzicht voor meer hulp bij het kiezen van een MySQL API.
Waar mogelijk moet het importeren van een bestand naar MySQL worden gedelegeerd aan de MySQL-client.

Ik heb een andere manier om dit te doen, probeer dit

<?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";
?>

Dit werkt voor mij



  1. Waarom retourneert het selecteren van SCOPE_IDENTITY() een decimaal in plaats van een geheel getal?

  2. Java Multicast Time To Live is altijd 0

  3. Entity Framework maakt een meervoudige tabelnaam, maar de weergave verwacht een enkelvoudige tabelnaam?

  4. T-SQL - Gegevens in bovenliggende en onderliggende tabellen invoegen