我正在使用我的網站上的搜索引擎。用戶可以在URL中添加與GET
一起提交的條件。根據GET參數重寫查詢
當用戶選擇例如1級的標準,它看起來像這樣:
localhost/search.php?course=1&price=&name=
他們有3個標準,他們可以選擇,所以你看他唯一入選的課程。
現在我必須根據標準從數據庫中選擇,所以我的代碼如下所示:
if ($_GET['price'] > 0 && $_GET['name'])
{
$search_price = $_GET['price'];
$search_name = $_GET['name'];
$result2 = mysql_query("SELECT id, name, price, views, userid, type, anonymous FROM files WHERE course='$course_id' AND price < $search_price AND name LIKE '%$search_name%'");
}
elseif ($_GET['price'] > 0)
{
$search_price = $_GET['price'];
$result2 = mysql_query("SELECT id, name, price, views, userid, type, anonymous FROM files WHERE course='$course_id' AND price < $search_price");
}
elseif ($_GET['name'])
{
$search_name = $_GET['name'];
$result2 = mysql_query("SELECT id, name, price, views, userid, type, anonymous FROM files WHERE course='$course_id' AND name LIKE '%$search_name%'");
}
else
{
$result2 = mysql_query("SELECT id, name, price, views, userid, type, anonymous FROM files WHERE course='$course_id'");
}
while ($row2 = mysql_fetch_assoc($result2))
{
.....
但是,這不可能是正確的做法,因爲如果最終用戶可以選擇10個標準,這是怎麼回事是一個很長的代碼
我該如何解決這個問題?
'SQL injection' +廢棄的'mysql_ *'功能....諮詢,學習PDO與事先準備好的聲明。 – itachi