Sicuramente è una cavolata, solo che non riesco a venirne a capo..

In pratica ho un input di tipo testo in cui va inserita una variabile e in base al valore di quella variabile estraggo dei dati con una query di selezione.

Il problema è che in quel campo di input ci potrebbe anche essere una variabile che contiene caratteri speciali, in particolare mi è capitato un &

Ho provato, chiamato il mio input "variabile", a inserire htmlspecialchars prima della query del tipo:


$variabile = htmlspecialchars ($variabile);

$sql = "SELECT * FROM tabella WHERE campo='$variabile'";

ma quando mi estraggo i record non ne trovo nemmeno uno..
Ho provato a vedere cosa mi passa $variabile dopo averla fatta passare per htmlspecialchars ma mi risulta solo tutto ciò che è a sinistra di &, ad esempio se $variabile=tom&jerry vedo solo $variabile=tom

Cosa devo fare?