2010-09-10 6 views
2

J'ai une variable $ mot et je voudrais faire correspondre dans mon instruction select quelque chose comme ceci: "sélectionnez * de la table où colonne regex '[0-9] $ mot'" mais cela ne fonctionne pas, donc comment puis-je mettre une variable dans une exprssion régulière?variable PHP dans regex?

Merci

Répondre

1

Vous ne devez le mettre correctement dans la requête SQL, par exemple:

mysql_query("SELECT * FROM table WHERE column REGEXP 'prefix_".$word."'"); 

Mais vous devez vous rappeler que les données variables doit être correctement échappé, je pense que addslashes() serait suffisant.

+0

Merci cela résolu =). – kingsley

+0

Je serais très reconnaissant si vous pouviez voter sur ma réponse aussi;] –

1

Vous pouvez essayer d'utiliser preg_quote() pour échapper à votre chaîne:

$sql = "select * from table where column regexp '[0-9]" . preg_quote($word) . "'"; 

Il y aura des problèmes parce que MySQL (en supposant que cela est votre DB) peut avoir une idée complètement différente qui caractères sont spéciaux que PCRE.