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

कई वैकल्पिक खोज शब्दों के साथ पैरामीटरयुक्त क्वेरी

आप पहले से ही sql इंजेक्शन से सुरक्षित हैं, क्योंकि आप mysqli_stmt_bind_params का उपयोग कर रहे हैं जो आपके लिए ठीक से बच जाएगा।

संपादित करें। स्वच्छ और सुंदर कोड के लिए आप कुछ डेटाबेस ढांचे पर स्विच कर सकते हैं।

वरना... यह बहुत पुरानी स्पेगेटी शैली है... लेकिन मुझे यह पसंद है :D

अज्ञात संख्या में पैरामीटर के साथ काम करने के लिए अपने कोड का विस्तार करना काफी आसान है। आपको बस अपने पैरामीटर पर लूप करना चाहिए और उसी समय 1. प्रश्न चिह्न नोटेशन के साथ अपनी क्वेरी स्ट्रिंग बनाएं, और अपने पैरामीटर को एक सरणी में जोड़ें, जिसे आप maxdb_stmt_bind_param ( संसाधन $stmt , string $types , array &$var ).

तो यह इस तरह दिखेगा। यह मानता है कि कम से कम एक पैरामीटर है (लेकिन इससे बचना मामूली है)।

$sql = "SELECT * FROM tbl_data WHERE ";
$and = '';
$types = '';
$parameters = array();
foreach($_POST as $k => $v) {
  // check that $k is on your whitelist, if not, skip to the next item
  $sql .= "$and $k = ?";
  $and = " AND ";
  $parameters[] = $v;
  $types .= 's';
}
$stmt_query = mysqli_prepare($db, $sql);
mysqli_stmt_bind_params($stmt_query, $types, $parameters);


  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 में Coalesce का उपयोग कैसे करें

  2. एक संग्रहीत कार्यविधि के साथ MySQL में एक तालिका को शफ़ल करें

  3. मैं mySQL डेटाबेस के साथ ठीक से इंटरैक्ट करने के लिए अपना लॉगिन फॉर्म प्राप्त नहीं कर सकता

  4. Mysql में किसी ईवेंट को कैसे बदलें जो पहले से ही बनाया गया है

  5. Mysql में उपनाम पर फ़िल्टर करना