gpt4 book ai didi

php - 如何使用 php system() 函数正确运行 mysql 命令?

转载 作者:行者123 更新时间:2023-11-29 05:40:35 27 4
gpt4 key购买 nike

我找不到与此完全相同的问题。如果我错了,请指出正确答案。

我有以下情况:

我需要在 cron 作业中运行一个脚本(没问题),问题出在我的脚本中,出了点问题,因为脚本没有正常运行。

脚本不工作

<?php

$command = 'mysql -u root -h localhost eephi < C:/wamp/www/file-20110817-0200.sql';
system( $command );

?>

最奇怪的是,命令-> mysql -u root -h localhost eephi < C:/wamp/www/file-20110817-0200.sql执行时是一个 shell,工作完美,没有错误,一切运行良好。但是当我像上面显示的那样在 php 脚本中调用命令时,它不起作用,没有错误,没有警告,没有任何输出。

我有另一个脚本在做类似但不相同的事情,但想法是一样的..而且工作正常。

工作脚本

$command = 'mysqldump -u user -p****** -h myhost.com mytable > /home/user/www/backup/file-20110817-0200.sql';
system( $command );

?>

那么这两个脚本有什么区别呢?一个工作正常,另一个不工作.. 对我来说很奇怪。我希望我能在这里找到解决方案。无论如何,谢谢你的时间。

最佳答案

可能是一个路径错误 - 从 PHP 中执行的东西与从命令行执行的环境不同。您可能必须在您的 exec 中提供 mysql 的完整路径(例如 /usr/local/bin/mysql ...)

您可以通过在命令末尾附加 2>&1 来捕获 shell 的错误消息。这会将 stderr 重定向到 stdout,以便 PHP 将错误消息视为命令输出的一部分。

关于php - 如何使用 php system() 函数正确运行 mysql 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7095866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com