首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP -替换我的一段字符串

PHP -替换我的一段字符串
EN

Stack Overflow用户
提问于 2018-07-08 06:12:12
回答 1查看 34关注 0票数 0

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

代码语言:javascript
复制
 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 Framework和PDO处理MVC。这个想法是搜索一个关键字,并使用该关键字搜索配置文件的名称或标签。我会先用这个查询搜索配置文件名称:SELECT * FROM Pessoas WHERE nome LIKE :keyword AND hidden = 0,然后一切都很好,直到我尝试使用上面的代码来获取id,这样我就可以生成一段代码来完成下面的查询SELECT * FROM Pessoas_tags WHERE,但它不起作用。

上面代码背后的想法是生成类似" OR id_Pessoas = 1 OR id_Pessoas = 4"的代码,然后删除第一个" OR ",这样它就不会给出错误,但也不会删除。我真的不知道为什么,这段代码不是我的,但我不知道它是从哪里来的,因为它是几个月前的。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-08 06:21:05

你的代码有问题。这应该会删除“OR ":

代码语言:javascript
复制
foreach ($Pessoas as $key => $value) {
  $ids = $ids . " OR id_Pessoas = " . $Pessoas[$key]['id'];
}

if (!empty($ids) && substr($ids, 0, strlen(" OR ")) == " OR ") {
  $ids = substr($ids, strlen(" OR "));
}

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

代码语言:javascript
复制
$ids = "1 != 1";
foreach ($Pessoas as $key => $value) {
  $ids = $ids . " OR id_Pessoas = " . $Pessoas[$key]['id'];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51227293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档