最新消息: 新版网站上线了!!!

php导入mysql数据库的方法

<?php

if (!function_exists('mysql_connect')) {
    if (DIRECTORY_SEPARATOR == '/') {
        dl('php_mysql.so');
    } else {
        dl('php_mysql.dll');
    }
}
$database = null;
$database = 'yg88';
//if (isset($argv[1])) {
//    $database = $argv[1];
//} else {
//    display_help();
//    exit;
//}

$optional_args = array(
    '-h' => 'hostname', 
    '-c' => 'charset', 
    '-f' => 'filename', 
    '-u' => 'username'
);

$options = array(
    'hostname' => 'localhost',
    'charset' => 'utf8',
    'filename' => '%s.sql',
    'username' => 'root',
);

$input_password = false;
for ($i = 2; $i < $argc; $i++) {
    $arg = $argv[$i];
    if ($arg == '-p') {
        $input_password = true;
        continue;
    }
    if (isset($optional_args[$arg])) {
        $value_name = $optional_args[$arg];
        if (isset($argv[$i + 1])) {
            $options[$value_name] = $argv[$i + 1];
            $i++;
        }
    }
}

if ($input_password) {
    echo "password: ";
    fscanf(STDIN, '%s', $password);
    $options['password'] = $password;
    echo "\n";
} else {
    $options['password'] = '123456';
}

if ($database == null) {
    display_help();
    exit;
}

mysql_connect($options['hostname'], $options['username'], $options['password']);
mysql_select_db($database);
mysql_query("SET NAMES '{$options['charset']}'");

// ÉèÖÃÒªµ¼³öµÄ±í
$tables = list_tables($database);

$filename = sprintf($options['filename'], $database);
$fp = fopen($filename, 'w');
foreach ($tables as $table) {
    dump_table($table, $fp);
}
fclose($fp);
mysql_close();
echo "done.\n";
exit;



function list_tables($database)
{
    $rs = mysql_list_tables($database);
    $tables = array();
    while ($row = mysql_fetch_row($rs)) {
        $tables[] = $row[0];
    }
    mysql_free_result($rs);
    return $tables;
}

function dump_table($table, $fp = null)
{
    $need_close = false;
    if (is_null($fp)) {
        $fp = fopen($table . '.sql', 'w');
        $need_close = true;
    }
    fwrite($fp, "-- \n-- {$table}\n-- \n");
    $rs = mysql_query("SELECT * FROM `{$table}`");
    while ($row = mysql_fetch_row($rs)) {
        fwrite($fp, get_insert_sql($table, $row));
    }
    mysql_free_result($rs);
    if ($need_close) {
        fclose($fp);
    }
    fwrite($fp, "\n\n");
}

function get_insert_sql($table, $row)
{
    $sql = "INSERT INTO `{$table}` VALUES (";
    $values = array();
    foreach ($row as $value) {
        $values[] = "'" . mysql_real_escape_string($value) . "'";
    }
    $sql .= implode(', ', $values) . ");\n";
    return $sql;
}

function display_help()
{
    echo <<

转载请注明:谷谷点程序 » php导入mysql数据库的方法