因为Sham在提交表单时给姓名信息进行了简单加密,导致无法直接通过sql来模糊查找,于是用到PHP中的strpos和array_keys来判断,具体代码如下,备忘:
<?php
//先通过sql获取姓名和id,对姓名解密后生成数组,假设这里已经生成好了,其中数组的值就是对应sql中的id号
$arr = [
"张三"=>1,
"李四"=>2,
"王二"=>3,
"赵四"=>4
];
$id="";
//假设我们要查询姓名中包含“四”的
$searchString = "四";
//通过array_key生成由key键组成的数组,并执行循环
foreach (array_keys($arr) as $key) {
//通过strpos判断key键是否包含想要查询的字符串
if (strpos($key, $searchString) !== false) {
//如果有,则拼接到id字符串中用于后续sql查询
$id .= "'".$arr[$key]."',";
}
}
//拼成用于sql查询语句的变量
$ids = "(".rtrim($id,',').")";
echo $ids; //这里输出的就是对应包含“四”的id,('2','4')
//下面就可以通过sql来查询对应的数据啦!
$sql="SELECT * from xxx where `id` in $ids order by id desc";
?>