此处尝试通过php中的数据库调用来检查字符串中某些字符的存在
使用下面的代码,效果很好。
$find= ['a','b','c'];
$mystring = "am here for you";
if(array_intersect($find, str_split($mystring))) {
echo "character found";
}else{
echo "character not found";
}
这是我的问题:我想以数据库方式实现它。
为此,我想从数据库中获取 $ find 变量数据,以便现在可以执行检查。
所以在我的数据库中,我将其插入如下
insert into checkd(find_character)values("['a','b','c']");
它已成功插入。.
这就是我现在检索它的方式
$result = $db->prepare('SELECT * FROM checkd');
$result->execute(array());
while ($row = $result->fetch())
{
$ckk= $row['find_character'];
//The result was printed successfully.
//echo "$ckk";
}
当我从数据库中回显结果时,可以成功看到['a','b','c']
现在我要根据数据库结果执行检查,但是它不显示我找到的字符是否存在 下面的代码。
$find_db= $ckk;
$mystring_db = "am here for you bb";
if(array_intersect($find_db, str_split($mystring_db))) {
echo "character found";
}else{
echo "character not found";
}
关于为什么它不能与数据库结果一起使用的任何想法
答案 0 :(得分:0)
它不起作用,因为在数据库中您将数组另存为字符串,并且array_intersect
函数需要一个数组。
您必须做的是将字符串转换为数组。
您可以执行以下操作:
a, b, c
使用爆炸将字符串转换为数组:
$find_db = explode(",", $ckk);