【问题标题】:How to test for success of mysqldump in PHP using shell_exec function如何使用 shell_exec 函数在 PHP 中测试 mysqldump 是否成功
【发布时间】:2016-02-22 15:22:48
【问题描述】:

我正在通过 PHP 调用 mysqldump 来生成我的数据库的备份。

在我的脚本中,我想测试命令是否成功完成。

到目前为止,我发现的所有解决方案都使用“exec”或“system”来运行 mysqldump。

这些功能在我的主机上被禁用,但 'shell_exec' 可用。

使用 shell_exec 如何检查 mysqldump 命令是否成功完成,或者是否有错误?

【问题讨论】:

    标签: php mysqldump shell-exec


    【解决方案1】:

    shell_exec() 返回的值就是执行命令输出的值。

    因此,您应该在 return 中获取来自 mysqldump 的所有输出。

    现在,要检查 mysqldump 是否失败,您很可能希望在与结果相关的输出字符串中进行一些搜索。

    只是一个简单的例子。如果你在控制台中运行php -v,你会得到类似的结果:

    PHP 5.6.10 (cli) (built: Jun 10 2015 15:59:59)
    Copyright (c) 1997-2015 The PHP Group
    Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    

    这是shell_exec() 的结果:

    string(148) "PHP 5.6.10 (cli) (built: Jun 10 2015 15:59:59) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies " 
    

    【讨论】:

    • 那么返回值将是数据库的整个转储?
    • 不,当您运行它时,输出将是mysqldump 输出到控制台的任何内容。
    • 我不知道它输出什么。我没有 SSH 访问权限,无法尝试自己运行命令来查看输出。
    • 那么,您可以通过shell_exec() 进行测试,对吧?
    • 我可以从个人过期情况得知,它不会在控制台中输出任何内容我不确定您是否可以附加参数以使其输出
    猜你喜欢
    • 2017-02-09
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    相关资源
    最近更新 更多