如何通过PHP中的数据库调用检查变量中字符的存在

时间:2019-07-03 17:15:25

标签: php

此处尝试通过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";

}

关于为什么它不能与数据库结果一起使用的任何想法

1 个答案:

答案 0 :(得分:0)

它不起作用,因为在数据库中您将数组另存为字符串,并且array_intersect函数需要一个数组。

您必须做的是将字符串转换为数组。

您可以执行以下操作:

  • 保存在数据库中:a, b, c
  • 使用爆炸将字符串转换为数组:

    $find_db = explode(",", $ckk);