$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");
Tidak akan bekerja seperti yang diharapkan. Ini akan diterjemahkan sebagai:
SELECT * from table WHERE 'columnName' LIKE '%a%'
yang mengembalikan semua baris karena 'columnName' berisi 'a'. 'columnName' adalah string, bukan nama kolom yang sebenarnya.
Upaya kedua Anda benar, kecuali Anda memiliki tanda kutip tambahan dalam istilah tersebut. Saat menggunakan parameter, Anda tidak memerlukan tanda kutip. Solusinya adalah:
$term = "%".$_POST['searchTerm']."%";
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();