PHP-替换我的字符串的一部分

PHP-替换我的字符串的一部分,php,sql,pdo,slim,Php,Sql,Pdo,Slim,晚上好。我目前正在做一个学校项目,我被卡住了。 代码如下: foreach ($Pessoas as $key => $value) { $ids = $ids . " OR id_Pessoas = " . $Pessoas[$key]['id']; } if (substr($ids, 0, 3) == " OR ") { if (substr($ids, 0, strlen(" OR "))

晚上好。我目前正在做一个学校项目,我被卡住了。 代码如下:

 foreach ($Pessoas as $key => $value) {
             $ids = $ids . " OR id_Pessoas = " . $Pessoas[$key]['id'];
         }

         if (substr($ids, 0, 3) == " OR ") {
             if (substr($ids, 0, strlen(" OR ")) == " OR ") {
                 $ids = substr($ids, strlen(" OR "));
             }
         }
这是PHP搜索系统控制器的一部分,我正试图将其传递给模型。正如您可能已经想到的,我正在使用使用Slim框架和PDO的MVC。 其想法是搜索一个关键字,然后用该关键字搜索配置文件的名称或标签。我首先用这个查询搜索配置文件名:
SELECT*FROM Pessoas,其中nome LIKE:keyword AND hidden=0
,一切都很好,直到我尝试使用上面的代码获取id,这样我就可以生成一段代码来完成下面的查询
SELECT*FROM Pessoas\u标记,其中
,但它不起作用

上面代码背后的想法是生成类似于
”或id_Pessoas=1或id_Pessoas=4“
的内容,然后删除第一个
”或“
,因此它不会给出错误,但不会删除。我真的不知道为什么,那段代码也不是我的,但我不知道我从哪里得到的,因为那是几个月前的事了


我希望这只是一个愚蠢的错误。如果您没有这样做,而是有更好的解决方案,我也希望您能在这里分享。提前感谢您的耐心和帮助。

您的代码有问题。这应删除“或”:

或者,由于条件是或,您可以添加一个始终为false的无效语句,并且不必删除任何“或”即可使其工作。有点像这样:

$ids = "1 != 1";
foreach ($Pessoas as $key => $value) {
  $ids = $ids . " OR id_Pessoas = " . $Pessoas[$key]['id'];
}

我试图放入无效语句,但它只是从表中获取每一行,而不是指定的id。但它确实去掉了“或”,所以谢谢你。
$ids = "1 != 1";
foreach ($Pessoas as $key => $value) {
  $ids = $ids . " OR id_Pessoas = " . $Pessoas[$key]['id'];
}