基于mysql从数组中删除单词

时间:2017-05-16 12:23:23

标签: php mysql arrays str-replace

我对字符串有一个非常基本的“过滤器”,根据数组内容删除单词。

$delete = array("bad", "words", "delete");
$string= str_replace($delete , '', $string);

这样做没有问题,但我想让它成为一个基于数据库的$ delete2数组。这就是我所拥有的:

$delete2= array();
$res=mysql_query("SELECT * FROM words WHERE type='delete' ");
while($row = mysql_fetch_array($res)){
$delete2[] = $row['delete'];
}

现在如果我输出这段代码:

$delete = array("bad", "words", "delete");
$string= str_replace($delete , '', $string);
$string= str_replace($delete2 , '', $string);

第二个str_replace不会替换任何东西。我错过了什么?谢谢!

2 个答案:

答案 0 :(得分:0)

第二个str_replace正在处理已经处理的$ string。在您的代码中,两次替换都将其分配给另一个变量。就像第一个$str_rslt1 = ...一样。

$delete2= array();
$res=mysql_query("SELECT * FROM words WHERE type='delete' ");
while($row = mysql_fetch_array($res)){
    $delete2[] = $row['delete'];
}

$delete = array("bad", "words", "delete");
$str_rslt1 = str_replace($delete , '', $string);
$str_rslt2 = str_replace($delete2 , '', $string);
echo "<p>Result 1: $str_rslt1</p>\n";
echo "<p>Result 2: $str_rslt2</p>\n";

另外,使用mysqli函数代替mysql函数。 mysqli被折旧并受SQL注入。查找准备语句和mysqli以获取更多信息。

答案 1 :(得分:0)

抱歉,我傻了。 $行[ '删除'];在我的表中不存在,我没有给予足够的重视。代码按预期工作。