$randomvariable = ESACPE_MYSQL_STRING($_GET['randomvariable']);
$search =
"SELECT * FROM objects " .
(empty($randomvariable) ? "" : "WHERE transactiontype='$randomvariable' ") .
"ORDER BY id DESC";
जहां ESCAPE_MYSQL_STRING
आप जिस भी MySQL ड्राइवर का उपयोग कर रहे हैं उसके लिए स्ट्रिंग से बचने के लिए प्रासंगिक कार्य है।
एक और, अधिक मॉड्यूलर तरीका:
$search = array(
"select" => "SELECT * FROM objects",
"where" => "WHERE transactiontype='$randomvariable'",
"order" => "ORDER BY id DESC"
);
if (empty($randomvariable)) {
unset($search["where"]);
}
$search = implode(' ', $search);
इसके बारे में अच्छी बात यह है कि आप किसी भी स्थिति के लिए क्वेरी को आसानी से जोड़, हटा या बदल सकते हैं, क्वेरी के किसी भी हिस्से तक आसानी से पहुंच सकते हैं।
आप इसे CASE()
SQL में, लेकिन यह कुछ बोझिल है और आपको अच्छे प्रदर्शन की उम्मीद भी नहीं करनी चाहिए:
SELECT * FROM objects
WHERE transactiontype LIKE
CASE WHEN '$randomvariable' = '' THEN
'%'
ELSE
'$randomvariable'
END CASE
ORDER BY id DESC