如何解决同一表中多行的搜索功能
我想知道如何在要搜索的搜索脚本上添加更多行。
这是我的php脚本:
<?php
$con = new PDO("mysql:host=localhost;dbname=db",'user','');
if (isset($_POST["submit"])) {
$str = $_POST["search"];
$sth = $con->prepare("
SELECT *
FROM `players`
WHERE region = '$str'
");
$sth->setFetchMode(PDO:: FETCH_OBJ);
$sth -> execute();
if($row = $sth->fetch())
{
?>
如您所见:
SELECT * FROM `players` WHERE region = '$str'
我想让它搜索区域并为行排序。 我尝试过:
SELECT * FROM `players` WHERE region,rank = '$str'
...。它显示0个结果。
谢谢。
解决方法
这是您想要的吗?
SELECT * FROM players WHERE ? IN (region,`rank`)
这将在region
和rank
列中搜索参数。
旁注:
-
为使此列正常且一致地工作,两列的数据类型必须相同
-
使用准备好的语句!不要在查询字符串中连接变量;这效率很低,并且会打开您的代码以进行SQL注入。参见How can I prevent SQL injection in PHP?
-
从8.0.2版开始,
rank
是reserved word in MySQL,因此不是列名的好选择
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。