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

如何在PHP中使用mysql dump

  •  0
  • user225269  · 技术社区  · 15 年前

    我尝试在命令行中使用mysql dump,但它起作用了。如何在PHP中执行此操作? 我在网上找到了这个代码,并尝试了一下。

    <?php
    ob_start();
    
    $username = "root"; 
    $password = "mypassword"; 
    $hostname = "localhost"; 
    $sConnString = mysql_connect($hostname, $username, $password) 
    or die("Unable to connect to MySQL");
    
    
    $connection = mysql_select_db("test",$sConnString) 
    or die("Could not select DB");
    $command ="C:\wamp\bin\mysql\mysql5.1.36\bin --add-drop-table --host=$hostname --databases test > C:\wamp\www\test\tester.sql"; 
    

    我不太明白以下代码的含义: 系统($command);

    $dump = ob_get_contents(); 
    ob_end_clean();
    
    
    
    $fp = fopen("dump.sql", "w"); 
    fputs($fp, $dump); 
    fclose($fp);
    
    ?>
    

    我将生成的.sql文件导入到数据库,并从phpmyadmin中得到此错误:

    There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem
    
    ERROR: Unknown Punctuation String @ 3
    STR: :\
    SQL: 
    E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin;
    E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin;
    E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin;
    
    SQL query:
    
    E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin;
    
    MySQL said: 
    
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin' at line 1 
    

    请帮忙,我想学习如何在PHP中完成这个操作。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Pekka    15 年前

    system($command); 执行外部 mysqldump 命令。

    我不太明白你粘贴的脚本,它看起来像是两个脚本的混合体?

    无论如何,转储文件中的语法错误可能意味着版本不匹配(4.x在目标服务器上运行?).

    使用 compatible 切换到生成在目标版本中工作的转储文件。

    --compatible=mysql40
    
    推荐文章