Utilisateur1
2009-10-22 06:21:19 UTC
a.. J'ai de gros problemes pour faire fonctionner ces deux expressions
régulaires.
Je veux identifier deux types de requêtes sql simples différentes que je
peux recevoir, pour effectuer un traitement différent avant d'envoyer la
requête au sgbd.
Dans les deux cas à tester, j'ai toujours "INCONNU" comme résultat.
J'ai bien utilisé i à la fin pour ne pas avoir de problèmes pour les
majuscules et minuscules, et j'ai essayé avec et sans, meme probleme.
[\ ]{0,} sert pour ne pas rater une requete si elle contient un espace en
plus entre deux parties de la requete.
Ou est l'erreur ?
Merci de votre assistance !
voici le code
// Premiere chaine à savoir intercepter
//$SQLRequete ="SELECT CURRVAL('seq_montruc_id')";
// Deuxieme chaine a savoir intercepter
a.. $Chaine ="SELECT mavaleur FROM matable WHERE lechamp = 1234";
a..
a..
IF(preg_match('/^(SELECT){1}[\ ]{0,}(CURRVAL\(\'){1}([a-zA-Z]+)(\'\)){1}$/i'
, $Chaine)==1)
a.. {
a.. echo('CURRVAL');
a.. }
a.. elseif(preg_match('/^(SELECT){1} [\ ]{0,} ([a-z]){0,} (\.){0,1}
(FROM){0,1} [\ ]{0,} ([a-z]){0,} (WHERE){0,1}
[\ ]{0,}([a-z]){0,}[\ ]{0,}[=]{1}[\ ]{0,}([0-9]){0,}$/i', $Chaine)==1)
a.. {
a.. echo('SELECT FROM ');
a.. }
a.. else
a.. {
a.. echo('INCONNU');
a.. }
régulaires.
Je veux identifier deux types de requêtes sql simples différentes que je
peux recevoir, pour effectuer un traitement différent avant d'envoyer la
requête au sgbd.
Dans les deux cas à tester, j'ai toujours "INCONNU" comme résultat.
J'ai bien utilisé i à la fin pour ne pas avoir de problèmes pour les
majuscules et minuscules, et j'ai essayé avec et sans, meme probleme.
[\ ]{0,} sert pour ne pas rater une requete si elle contient un espace en
plus entre deux parties de la requete.
Ou est l'erreur ?
Merci de votre assistance !
voici le code
// Premiere chaine à savoir intercepter
//$SQLRequete ="SELECT CURRVAL('seq_montruc_id')";
// Deuxieme chaine a savoir intercepter
a.. $Chaine ="SELECT mavaleur FROM matable WHERE lechamp = 1234";
a..
a..
IF(preg_match('/^(SELECT){1}[\ ]{0,}(CURRVAL\(\'){1}([a-zA-Z]+)(\'\)){1}$/i'
, $Chaine)==1)
a.. {
a.. echo('CURRVAL');
a.. }
a.. elseif(preg_match('/^(SELECT){1} [\ ]{0,} ([a-z]){0,} (\.){0,1}
(FROM){0,1} [\ ]{0,} ([a-z]){0,} (WHERE){0,1}
[\ ]{0,}([a-z]){0,}[\ ]{0,}[=]{1}[\ ]{0,}([0-9]){0,}$/i', $Chaine)==1)
a.. {
a.. echo('SELECT FROM ');
a.. }
a.. else
a.. {
a.. echo('INCONNU');
a.. }