Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Mysqli पैरामीटर बाध्यकारी मुद्दा

$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();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL आप सुरक्षित अपडेट मोड का उपयोग कर रहे हैं और आपने WHERE के बिना तालिका को अपडेट करने का प्रयास किया है

  2. टेक्स्ट/ब्लॉब को एक ही टेबल में स्टोर करें या नहीं?

  3. फ़ारो स्मॉलटाक और mySql

  4. वर्तमान पृष्ठ संख्या को हाइलाइट करें पीएचपी पेजिनेशन

  5. SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo विफल:नोडनाम और न ही सर्वनाम प्रदान किया गया, या ज्ञात नहीं