$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");
Non funzionerà come previsto. Verrà tradotto come:
SELECT * from table WHERE 'columnName' LIKE '%a%'
che restituisce tutte le righe perché 'columnName' contiene una 'a'. 'columnName' è una stringa, non un nome di colonna effettivo.
Il tuo secondo tentativo è corretto, tranne per il fatto che hai delle virgolette extra nel termine. Quando si utilizzano i parametri, non sono necessarie virgolette. La soluzione è:
$term = "%".$_POST['searchTerm']."%";
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();