我使用mysql命令从ssh2_exec()中得不到任何结果

时间:2013-05-17 04:56:34

标签: php mysql linux ssh libssh2

我遇到了问题。 如果我运行mysql命令,我的PHP脚本将中止:

ssh2_exec($session, 'mysql -sse "SELECT COUNT(*) FROM table"');

用putty命令没问题。任何其他命令,如'll -la'或其他什么都没有问题。

你能告诉我它为什么不起作用吗?

再见

2 个答案:

答案 0 :(得分:0)

我不知道-sse选项,但我想您的问题是ssh2_exec返回的是流而不是字符串。

您可以尝试使用:

$stream = ssh2_exec($session, 'echo "SELECT COUNT(*) FROM table" | mysql');
$output = stream_get_contents($stream);

答案 1 :(得分:0)

好的......我现在明白了。

命令“mysql”在我的系统中是“mysql -u user -ppassword”的别名。 但如果你用ssh2_exec()做连接,所有别名都是未知的。

我所要做的就是这个。

ssh2_exec($session, 'mysql -u user -ppassword -sse "SELECT COUNT(*) FROM table"');

谢谢你!