如何将LIKE %%应用于变量?

时间:2011-04-19 13:11:27

标签: php mysql

如何将LIKE应用于我的查询。

$query_event ="SELECT * FROM event_list WHERE even_title='$EventTitle' AND even_loc='$EventLocation' ";

现在假设有一种形式需要在表单中放置标题或放置位置,或者你可以同时放置两者以便查询是什么?

请帮忙

感谢

4 个答案:

答案 0 :(得分:1)

您可以使用以下格式并始终使用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)."%'";

答案 1 :(得分:1)

你想要的东西:

$query_event ="SELECT * FROM event_list WHERE even_title LIKE ('%".$EventTitle."%') AND even_loc LIKE ('%".$EventLocation."%')";

确保通过these tutorials还有一个LIKE教程

答案 2 :(得分:1)

首先,您希望阻止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);

答案 3 :(得分:1)

看起来很简单。 {}甚至不是必需的,但在不影响SQL有效性的情况下为PHP添加了可读性。

$query_event ="SELECT * FROM event_list WHERE even_title LIKE '%{$EventTitle}%' AND even_loc LIKE '%{$EventLocation}%' ";