尝试在我的网站上创建关键字搜索。
我有一个搜索栏并在其中输入一个关键字,例如愤怒。我的网址现在将是www.website.com/?s=angry
如何对我的 VARCHAR 字段上的关键字进行 mysql 搜索查询?
谢谢
PHP
$search = $_GET['s']; //clean this up to avoid sql injection
MySQL
SELECT * FROM MyTable
WHERE field1 LIKE '%search%' OR
field2 LIKE '%search%' OR
...
fieldn LIKE '%search%'
wheresearch
应该替换为用户输入的内容
您可以LIKE
在 SQL 语句中使用:
$search = $mysqli->real_escape_string($_GET['s']);
$query = "select column from table where varchar_column like '%$search%'";
这将在您的 VARCHAR 列中找到所有出现的搜索字符串。
编辑:添加代码以帮助防止 SQL 注入。显然,在将查询应用到生产环境时,您应该始终保护查询免受注入。
首先,您必须从 url 中获取搜索字符串。这可以在 php 中使用 $_GET 全局变量来完成。键代表 url 的“s=”部分。
$search = $_GET['s'];
然后你需要做一个 MYSQL 查询来搜索你的字段
SELECT * (or whatever column you need) FROM (table) WHERE (column) LIKE '%($search)%'
我建议使用 PDO 准备语句来执行查询,以便自动转义 $search 变量。