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

| 我如何将LIKE应用于我的查询。
$query_event =\"SELECT * FROM event_list WHERE even_title=\'$EventTitle\' AND even_loc=\'$EventLocation\' \";
现在假设存在一个需要在表格中放置标题或放置位置的表格,或者您可以同时放置两者,那么查询将是什么? 请帮忙 谢谢
已邀请:
您可以使用以下格式,并始终使用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).\"%\'\";
它看起来很简单。 ѭ2甚至不是必需的,但是可以增加PHP的可读性,而不会影响SQL的有效性。
$query_event =\"SELECT * FROM event_list WHERE even_title LIKE \'%{$EventTitle}%\' AND even_loc LIKE \'%{$EventLocation}%\' \";
您想要类似的东西:
$query_event =\"SELECT * FROM event_list WHERE even_title LIKE (\'%\".$EventTitle.\"%\') AND even_loc LIKE (\'%\".$EventLocation.\"%\')\";
确保阅读这些教程,那里也有一个
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);

要回复问题请先登录注册