$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");
Nebude fungovat podle očekávání. Bude přeloženo jako:
SELECT * from table WHERE 'columnName' LIKE '%a%'
který vrátí všechny řádky, protože 'columnName' obsahuje 'a'. 'columnName' je řetězec, nikoli skutečný název sloupce.
Váš druhý pokus je správný, až na to, že v termínu máte navíc uvozovky. Při použití parametrů nepotřebujete žádné uvozovky. Řešením je:
$term = "%".$_POST['searchTerm']."%";
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();