首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用php system()函数正确运行mysql命令?

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

Stack Overflow用户
提问于 2011-08-17 15:57:54
回答 4查看 2.4K关注 0票数 1

我找不到任何像这样的问题。如果我错了,请给我指出正确的答案。

我有以下情况:

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

不工作脚本

代码语言:javascript
运行
复制
<?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脚本中调用命令时,它没有工作,没有错误,没有警告,没有输出。

我有另一个脚本在做类似的事情,但不一样,但想法是一样的。而且效果很好。

工作脚本

代码语言:javascript
运行
复制
$command = 'mysqldump -u user -p****** -h myhost.com mytable > /home/user/www/backup/file-20110817-0200.sql';
system( $command );

?>

那么这两个脚本有什么区别呢?一个很好,另一个不行..。我觉得很奇怪。我希望我能在这里找到解决办法。不管怎样,谢谢你抽出时间。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-17 16:03:07

在PHP内部执行路径错误可能与命令行中的环境不同。您可能必须在您的主管(例如/usr/local/bin/mysql ...)中提供到mysql的完整路径。

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

票数 3
EN

Stack Overflow用户

发布于 2011-08-17 16:00:40

你试过用

代码语言:javascript
运行
复制
exec(); 

而不是

代码语言:javascript
运行
复制
system();
票数 0
EN

Stack Overflow用户

发布于 2011-08-17 16:02:58

也许区别不在于脚本,而在于运行环境?您试过在本地主机上运行第二个脚本吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7095866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档