代码之家  ›  专栏  ›  技术社区  ›  Jim

如何使用PHP使用备份文件创建包含表和信息的数据库?

  •  1
  • Jim  · 技术社区  · 16 年前

    如何使用PHP使用备份文件创建包含表和信息的数据库?

    到目前为止,我的代码是

    <?
    header("content-type:text/plain");
    
    $serv= mysql_connect('localhost', 'root', 'xxxx');
    
    if($serv){
            wText("Server connection created");
    }
    else{
        wText("Server connection failed");
    
    }
    
    $sql ="CREATE DATABASE tf2faq";
    
    if(@mysql_query($sql,$serv)){
    
        wText("Database tf2faq created");
    }
    else{wText("Database tf2faq create failed");}
    
    
    
    
    $sql = 'CREATE TABLE `tf2faq`.`loadoutitems` (`item` TEXT NULL, `class` TEXT NULL, `type` TEXT NULL, `replaces` TEXT NULL, `itempos` TEXT NULL, `modpos` TEXT NULL, `modneg` TEXT NULL, `imgurl` TEXT NULL, `notes` TEXT NULL) ENGINE = MyISAM';
    mysql_query($sql,$serv);
    if(@mysql_query($sql,$serv)){
    wText("table loadoutitems created");
    }
    else{
    wText("table loadoutitems create failed");
    
    }
    
    $sql="LOAD DATA INFILE 'loadoutitmsfx.csv' INTO TABLE  `tf2faq`.'loadoutitems'";
    
    if(@mysql_query($sql,$serv)){
    wText("Data Load Passed");
    }
    else{
    wText("Data Load Failed");
    }
    
    
    
    function wText($txt){
        echo $txt . "\n";
    }
    ?>
    

    它在加载数据行上失败,不知道为什么。

    编辑 在我的代码中,我删除了其中的“@”,它仍然表示文件加载失败。

    2 回复  |  直到 16 年前
        1
  •  0
  •   camomileCase    16 年前

    loadoutitmsfx.csv在哪里?文件需要在运行数据库的计算机上。您可以尝试指定它的整个路径。类似于“/home/jim/loadoutitmsfx.csv”。

    csv文件和表中的列数是否匹配?

    您可能需要指定更多选项才能使csv正常工作。

    将'/home/jim/loadoutitmsfx.csv'中的数据加载到表TF2faq.loadoutitems中 字段以“'”结尾,由“'”括起来,由“'”转义 行以'\r\n'结尾

    另外,不要使用@。

        2
  •  0
  •   gone    16 年前

    LOAD DATA INFILE 在大多数MySQL服务器上都被禁用,因为它不适用于远程数据库服务器,并且要求数据库服务器能够读取数据文件。自己分析文件并生成SQL语句。