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

html <एकाधिक का चयन करें =एक से अधिक> + SQL क्वेरी खोज

यहाँ समस्या (और दूसरे उत्तर के साथ) यह है कि in क्लॉज उद्धरणों से घिरा हुआ था, जिससे वह परिणाम नहीं मिलेगा जो हम चाहते हैं। हमें क्वेरी के लिए एक सरणी में प्रभावी ढंग से पास करने की आवश्यकता है। साथ ही आपका कोड sql इंजेक्शन के प्रति संवेदनशील है . मैं दृढ़ता से पीडीओ/तैयार बयानों में जाने का सुझाव दूंगा। मैंने एक मामूली जोड़ा देशों के लिए सुरक्षा, लेकिन यह किसी भी तरह से मूर्खतापूर्ण नहीं है।

function prepareForSql($value, $key) {
    return addslashes($value);
}

array_walk($_POST["chkUnr"], "prepareForSql");
$search_country = "'" . implode("','", $_POST["chkUnr"]) . "'";

$query = "";
$query .= "SELECT users.* FROM users";
if (isset($_POST['singles_online']) ? $_POST['singles_online'] : 0 == 1) {
    $query .= " LEFT JOIN online ON online.user_id = users.id";
}
$query .= " WHERE";
if (isset($_POST['vip']) ? $_POST['vip'] : 0 == 1) {
    $query .= " users.vip = 1 AND";
}
if (isset($_POST['profile_image']) ? $_POST['profile_image'] : 0 == 2) {
    $query .= " users.profile_image = '2' AND";
}
if (isset($_POST['singles_online']) ? $_POST['singles_online'] : 0 == 1) {
    $query .= " online.is_online = 1 AND";
}
$query .= " (id NOT IN (SELECT user_id FROM users_blocked WHERE blocked_id = '$user_id')) AND";

$query .= " (users.user_age >= '$age_from' AND users.user_age <= '$age_to') AND";
$query .= " (users.gender = '$gender_search') AND";

$query .= " users.country IN ($search_country)";

$search_query = mysql_query($query);


  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 स्कीमा नाम मुझे कमांड लाइन क्वेरी निष्पादित करने की अनुमति नहीं देता है

  2. सनस्पॉट सोलर अपरिभाषित फ़ील्ड प्रकार

  3. अपने MariaDB या MySQL डेटाबेस का भौतिक बैकअप बनाएं

  4. Html2Pdf में पेज ब्रेक

  5. Openshift MySQL कार्ट्रिज को पुनरारंभ करने में त्रुटि