gpt4 book ai didi

php - 查询如果搜索值等于两行?

转载 作者:行者123 更新时间:2023-11-29 00:32:22 25 4
gpt4 key购买 nike

我的代码很像数据库中的人名搜索引擎。

if (isset($_POST['submit'])){
$keyword = $_POST['stats'];
$orderby = $_POST['orderby'];

if (!empty($_POST['stats'])) {
$getStats = $db->query("SELECT * FROM `stats` WHERE
`lastname` LIKE '%$keyword%' OR `firstname` LIKE '%$keyword%' OR
`nickname` LIKE '%$keyword%' ORDER BY `$orderby`
DESC");

然后将结果打印回表格中,我认为表格代码没有必要而且太长了。

上面的查询适用于我只搜索姓氏或名字或昵称的情况

但是如果数据库中有一个名为 John Smith 的用户所以

Firstname: John
Lastname: Smith

如果只搜索“John”,他会被打印到表格中,这与我只搜索“Smith”一样好

但如果我搜索“John Smith”,他将不会打印到表格中。

我怎样才能改变这个查询,这样会发生,我试过这个:

$getStats = $db->query("SELECT * FROM `stats` WHERE
`firstname`, `lastname` = '$keyword' OR `lastname` LIKE '%$keyword%' OR `firstname` LIKE '%$keyword%' OR
`nickname` LIKE '%$keyword%' ORDER BY `$orderby`
DESC");

最佳答案

WHERE CONCAT(firstname, ' ', lastname) LIKE %$keyword%

此外,您应该绑定(bind)参数而不是直接将用户输入插入查询字符串,您当前的代码容易受到 SQL 注入(inject)攻击。

关于php - 查询如果搜索值等于两行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15934812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com