将PHP MySQL查询输出放入SSH

时间:2011-09-16 11:02:19

标签: php ssh

我的程序最初通过http调用mySQL查询。结果以JSON格式返回:

 $query  = "SELECT xaxis, yaxis FROM table ";
$result = mysql_query($query);

$rows = array();
$counter=1;

while ($r = mysql_fetch_array($result, MYSQL_NUM))
{

     echo json_encode($r[0]), "\n";
     echo json_encode($r[1]), "\n";

    $counter++;

} 


?>  

它工作正常(授予不是世界上最好的PHP脚本),但现在我正在用SSH做一切,我正在考虑通过bash进行SQL查询然后我想,为什么我不打电话SSH中的PHP脚本?

但是我不知道怎么做,因为PHP返回一个数组。如果它返回了一个简单的文件,理论上就是这样做:

spc username@hostname:filename  localfilename

我应该如何从SSH中的脚本返回数组?

2 个答案:

答案 0 :(得分:0)

PHP不返回数组。它返回一个JSON格式的字符串:记住,HTTP只能给你文本

所以没有区别。只需在终端中调用PHP脚本,您就会看到相同的文本

(实际上,看起来你有两个不同的JSON结构,用换行符分隔。你可能希望通过编码$r来解决这个问题:)

[user@host: ~]$ cat myscript.php
<?php
$query  = "SELECT `xaxis`, `yaxis` FROM `table`";
$result = mysql_query($query);

$rows = Array();
while ($r = mysql_fetch_assoc($result)) {
     $rows[] = $r;
}

echo json_encode($rows);
?>

[user@host: ~]$ php myscript.php
[
   { "xaxis" : 0, "yaxis" : 0 },
   { "xaxis" : 3, "yaxis" : 2 },
   { "xaxis" : 8, "yaxis" : 5 }
]

或类似的东西。

答案 1 :(得分:0)

1)如果允许该用户从外部服务器连接到MySQL,您可以在所需的服务器上运行PHP脚本。这样你就不必转移文件或任何东西(看到你写的“spc”,而我猜它被认为是“scp”。

2)如果您希望输出单个数组,请将while循环更新为以下代码:

$output = array();

while ($r = mysql_fetch_array($result, MYSQL_NUM))
{
    $output[] = $r;
    $counter++; //Im guessing you need this :P
}

echo json_encode($output);

可以从任何地方调用此脚本,但如果要从SSH运行它,只需运行以下命令*:

  

php yourfile.php

*确保安装了php-cli;)

希望这能帮到你;)