php搜索功能

时间:2010-05-14 15:20:52

标签: php

我正在尝试为我的网站上的用户个人资料创建搜索功能。

$search= $_POST['search'];
$res=mysql_query("SELECT * FROM ".TBL_USERS." WHERE username LIKE '$search%'");

这是我使用的代码。这只有在搜索与结果开头匹配的内容时才有效。有没有什么方法可以返回值,我输入的内容作为用户名的一部分而不是大写或小写?

三江源

4 个答案:

答案 0 :(得分:3)

“%”是通配符,因此如果您还将其放在搜索字符串前(例如%$search%),它将在用户名中的任意位置匹配$ search。

在SQL中使用“LOWER”使用户名小写,并在PHP中使用“strtolower”执行相同的操作,然后执行查询以获得不区分大小写的结果。

正如David Dorward所说:在你做任何事之前先阅读bobby-tables.com !!!

答案 1 :(得分:0)

你应该真正添加某种数据清理,你永远不应该采用原始的post / get数据并将其直接插入到查询中。

随着说:

$search= strtolower($_POST['search']);
$res=mysql_query("SELECT * FROM ".TBL_USERS." WHERE LOWER(username) LIKE '$search%'");

答案 2 :(得分:0)

当您使用LIKE时,您可以在输入的两侧使用%通配符,这将返回$ search是用户名的一部分的任何用户。

您可能还想查看MySQLs REGEXP function

$search= mysql_real_escape_string($_POST['search']);
$res=mysql_query("SELECT * FROM ".TBL_USERS." WHERE username LIKE '%" . $search . "%'");

答案 3 :(得分:-3)

你需要阅读“SQL注入”和“PHP准备语句”这两个术语 - 谷歌为他们......这对你提出的问题更为重要。

但是既然你问,请尝试以大写的比较全部...

马丁。