问题描述
我想知道如何在要搜索的搜索脚本上添加更多行。
这是我的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,因此不是列名的好选择