Originariamente inviato da Donovant
Ho capito che c'è una relazione con "show" all'errore visto che è definito come tinyint(1) predefinito "1", anche se io lo avevo settato come booleano.
tutto dipende da cosa contiene $attr

Sospetto ci sia una parola riservata la dentro.

le forme giuste che hai elencato sono:

Codice PHP:
// 1 nome tra backtick accetta una parola riservata
$result mysql_query("SELECT * FROM eventi WHERE `$attr` = 1"); 

// 2 corretto ma non accetta una parola riservata
$result mysql_query("SELECT * FROM eventi WHERE $attr = 1"); 

// 3 errato. $attr non e' una stringa
$result mysql_query("SELECT * FROM eventi WHERE \"$attr\" = 1"); 

// 4 come il 2
$result mysql_query("SELECT * FROM eventi WHERE ".$attr." = 1"); 
ora toglici la curiosita' ....

echo $attr cosa stampa?

Se stampa "show" ho vinto una bambolina....