2011-09-16 7 views
0

私のプログラムはもともとhttpでmySQLクエリを呼び出していました。PHPのMySQLクエリ出力をSSHに入れよう

$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スクリプト)[OK]を動作しますが、今私は、SSHですべてをやっていると私はbashのを介してSQLクエリをやって考えていた。結果はJSON形式で返されましたそれから私は、なぜ私はSSHでPHPスクリプトを呼び出さないと思ったのですか?

しかし、私はPHPが配列を返すので、これを行う方法がわかりません。それは私ができる単純なファイルを返された場合、理論的にはちょうどん:

spc [email protected]:filename localfilename 

は、どのように私はSSHでのスクリプトから配列を取得返す必要がありますか?

答えて

0

PHPは配列を返しません。 JSON形式の文字列を返します。つまり、HTTPはあなたにのテキストを与えることしかできません。

だから違いはありません。あなたの端末でPHPスクリプトを呼び出すだけで、同じのテキストが表示されます。あなたは改行で区切って2つの明確なJSON構造を持っているよう

(実際には、それが見えます。あなたが代わりに$rをコード:)

[[email protected]: ~]$ 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); 
?> 

[[email protected]: ~]$ php myscript.php 
[ 
    { "xaxis" : 0, "yaxis" : 0 }, 
    { "xaxis" : 3, "yaxis" : 2 }, 
    { "xaxis" : 8, "yaxis" : 5 } 
] 

またはそのような何かをすることによって、その問題を解決したい場合があります。

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がインストールされていることを確認してください;)これはあなたを助けた

希望;)

関連する問題