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.
renvoie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
[EDIT]
J'ai légèrement changé le programme pour qu'il prenne en compte les \n :
Le problème est que je ne récupère plus la main. La page se charge indéfiniment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Partager