$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");
Sẽ không hoạt động như mong đợi. Nó sẽ được dịch là:
SELECT * from table WHERE 'columnName' LIKE '%a%'
trả về tất cả các hàng vì 'columnName' chứa 'a'. 'columnName' là một chuỗi, không phải là tên cột thực.
Lần thử thứ hai của bạn là đúng, ngoại trừ bạn có thêm một dấu ngoặc kép trong thuật ngữ. Khi sử dụng các tham số, bạn không cần bất kỳ dấu ngoặc kép nào. Giải pháp là:
$term = "%".$_POST['searchTerm']."%";
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();