Commande avec ' " et variables

Santro
Invité n'ayant pas de compte PHPfrance

26 avr. 2006, 11:17

Bonjour je souhaite effectué une commande du genre
$req ='logparser "SELECT Type, TimeGenerated, Source, EventID, ComputerName INTO sys.csv FROM \\\\$serveur\\$act WHERE 'Date'=$date"';
Le problême est que PHP ne reconnait pas mes variables donc je suis un peu embeter, apres avoir essayé moult version de cette requete il m'indique toujours parse error.
Pourtant j'ai mis correctement les ';' a cette requete et a la phrase d'avant.

Merci

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 avr. 2006, 11:21

Tu as des soucis de ' et " je pense.

Testes ceci :
$req = 'logparser "SELECT Type, TimeGenerated, Source, EventID, ComputerName INTO sys.csv FROM \\\\$serveur\\$act WHERE Date='.$date.'"';

Santro
Invité n'ayant pas de compte PHPfrance

26 avr. 2006, 11:25

Merci mais cela ne marche toujours pas

Je doit afficher trois variables
$serveur
$act
$date

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 avr. 2006, 11:27

Ah oui je n'ai pas vu les autres variables. Pourquoi tous ces \\\ ?
$req = 'logparser "SELECT Type, TimeGenerated, Source, EventID, ComputerName INTO sys.csv FROM '.$serveur.','.$act.' WHERE Date='.$date.'"';
$serveur et $act sont bien des noms de tables ?
Modifié en dernier par charabia le 26 avr. 2006, 11:27, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 avr. 2006, 11:27

Entre guillemets (") php est capable d'interpreter tes variables, mais il ne le fait pas entre apostrophes (') :
$var = "toto";
echo "mon nom est $var"; // affiche "mon nom est toto"
echo 'mon nom est $var'; // affiche 'mon nom est $var'
Le mieux étant dans tous les cas de sortir les variables comme l'a fait charabia.

Par contre à mon avis tu vas également avoir un soucis avec ton "\\\\$serveur\\$act" ...

Santro
Invité n'ayant pas de compte PHPfrance

26 avr. 2006, 11:45

Re
$req = 'logparser "SELECT TimeGenerated, SourceName, EventCategoryName, Message, ComputerName INTO sys.csv FROM \\\\'.$serveur.'\\'.$act.'"';
Marche nickel

voici le resultat =>
logparser "SELECT TimeGenerated, SourceName, EventCategoryName, Message INTO sys.csv FROM \\localhost\system"

le '\\' affiche '\'
i.e.
echo "c:\\windaube";
affichera

Code : Tout sélectionner

c:\windaube
Merci