आप मानदंडों की एक सूची बना सकते हैं और बाइंड वैल्यू और प्रकारों की सूची में जोड़ सकते हैं, यहां एक त्वरित मॉक अप है जो आपके द्वारा संदर्भित दो फ़ील्ड का उपयोग करता है...
$data = [];
$params = "";
$where = [];
if ( !empty($name)) {
$data[] = $name;
$params.="s";
$where[] = "name like ?";
}
if ( !empty($size)) {
$data[] = $size;
$params.="i";
$where[] = "size < ?";
}
$sql = "SELECT * FROM items";
if ( count($where) > 0 ){
$sql .= " where ". implode ( " and ", $where);
}
$query = $database->prepare($sql);
$query->bind_param($params, ...$data);
$query->execute();
ध्यान दें कि bind_param()
...
का उपयोग करता है आपको अलग-अलग फ़ील्ड के बजाय एक सरणी पास करने की अनुमति देने के लिए।