$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");
अपेक्षा के अनुरूप काम नहीं करेगा। इसका अनुवाद इस प्रकार किया जाएगा:
SELECT * from table WHERE 'columnName' LIKE '%a%'
जो सभी पंक्तियों को लौटाता है क्योंकि 'कॉलमनाम' में 'ए' होता है। 'कॉलमनाम' एक स्ट्रिंग है, वास्तविक कॉलम नाम नहीं।
आपका दूसरा प्रयास सही है, सिवाय इसके कि आपके पास शब्द में अतिरिक्त उद्धरण हैं। पैरामीटर का उपयोग करते समय, आपको किसी उद्धरण की आवश्यकता नहीं होती है। समाधान है:
$term = "%".$_POST['searchTerm']."%";
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();