如何將LIKE應用於我的查詢。如何將LIKE %%應用於變量?
$query_event ="SELECT * FROM event_list WHERE even_title='$EventTitle' AND even_loc='$EventLocation' ";
現在假設有形式要求要麼把標題或放位置的形式或u可以將兩個這樣會有怎樣查詢?
請幫
感謝
如何將LIKE應用於我的查詢。如何將LIKE %%應用於變量?
$query_event ="SELECT * FROM event_list WHERE even_title='$EventTitle' AND even_loc='$EventLocation' ";
現在假設有形式要求要麼把標題或放位置的形式或u可以將兩個這樣會有怎樣查詢?
請幫
感謝
您可以使用以下格式並且總是使用mysql_real_escape_string
$query_event ="SELECT * FROM event_list
WHERE even_title LIKE '%".mysql_real_escape_string($EventTitle)."%'
AND even_loc LIKE '%".mysql_real_escape_string($EventLocation)."%'";
你想要的東西就像逃脫輸入:
$query_event ="SELECT * FROM event_list WHERE even_title LIKE ('%".$EventTitle."%') AND even_loc LIKE ('%".$EventLocation."%')";
確保經歷these tutorials有一個LIKE
教程太
那麼首先,要防止注入您的SQL,但你可以這樣做:
$query_event = "SELECT * FROM event_list
WHERE even_title LIKE '%".mysql_real_escape_string($EventTitle)."%'
AND even_loc LIKE '%".mysql_real_escape_string($EventLocation)."%'";
但你實際上是使用類似PDO的更好:
$qry = 'SELECT * FROM event_list
WHERE even_title LIKE :title
AND even_loc LIKE :location';
$data = array('title' => '%'.$EventTitle.'%',
'location' => '%'.$EventLocation.'%');
$sth = $pdo->prepare($qry);
$sth->execute($data);
東西不看這裏... – 2011-04-19 13:15:53
@大衛什麼看起來不正確? – 2011-04-19 13:20:34
錯位$,看起來像現在修復+1 – 2011-04-19 13:26:00
它看起來很簡單。 {}
甚至沒有必要,但爲PHP添加可讀性而不影響SQL有效性。
$query_event ="SELECT * FROM event_list WHERE even_title LIKE '%{$EventTitle}%' AND even_loc LIKE '%{$EventLocation}%' ";
但是記住,這將需要轉義,以避免報價的問題(SQL注入攻擊等)。例如,如果$ EventLocation是「米克的酒吧」 - 現在你有不匹配的報價你SQL。 (啊哈 - 感謝您添加必要的逃生功能!) – 2011-04-19 13:15:20
@Matt:它已經在第二次嘗試 – 2011-04-19 13:17:05