[SSH2] PHP/SSH commande SQL
Bonjour à tous,
Je voudrais faire une commande SQL (sur oracle) sur un serveur distant par le biais du protocole SSH de PHP. Le ssh2 de php marche correctement.
J'arrive à me connecter à ma base oracle mais je ne sais pas comment passer les commandes SQL par la suite.
Je m'explique. Je veux juste récupérer le résultat de la commande "select status from v$instance sur une base oracle." il me dit que la syntaxe de connection oracle n'est pas bonne puisqu'il ne considère pas le \n comme une validation de la commade.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
$commande_ssh2 = 'sqlplus system/manager@demoweb \n
select status from v$instance; \n
exit \n';
echo 'Lancement de la commande : '.$commande_ssh2;
$stream = ssh2_exec($connection, $commande_ssh2);
stream_set_blocking( $stream, true );
$data = fread($stream,4096);
fclose($stream); |
renvoie :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Lancement de la commande : sqlplus system/manager@demoweb \n select status from v$instance; \n exit \n
Commande
Syntaxe : SQLPLUS [] [connexion] [] ]
où ::= - | -? | [ [-M ] [-R ] [-S] ]
::= [/][@] | / | /NOLOG }
::= @[.] [ ...]
"-" affiche la syntaxe
"-?" affiche le numéro de version de SQL*Plus
"-M " utilise les options de balisage HTML
"-R " utilise le mode restreint
"-S" utilise le mode silencieux |
Merci d'avance
[EDIT]
J'ai légèrement changé le programme pour qu'il prenne en compte les \n :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
$commande_ssh1 = "sqlplus system/manager@demoweb \n
select status from v$instance; \n
exit \n
";
echo 'Lancement de la commande : '.$commande_ssh.'<br/>';
$stream = ssh2_exec($connection, $commande_ssh);
stream_set_blocking( $stream, true );
$data = "";
while( $buf = fread($stream , 1024) )
{
$data .= '<hr />'.$buf;
} |
Le problème est que je ne récupère plus la main. La page se charge indéfiniment.