如果foreach()
不是数组。因此,您的第一步应该是通过检查$results
确认结果符合您的预期。如果不是,那么它可能会给你一些线索来解释原因。这是调试101。
如果你这样做,你会发现你没有得到结果。如果你没有得到结果,那么下一步就是找出原因。这样做的方法是检查您实际查询的内容。您可以通过检查$prepare
是
如果这样做,您将看到SQL查询与您期望的不匹配。很可能id_service=
缺少或不正确。
请注意,到目前为止,所有这些步骤都不需要任何WordPress开发知识、特殊调试工具或IDE,甚至不需要任何PHP基础知识。比学习PHP或WordPress API更重要的是教会自己遵循这些非常基本的调试步骤。
因此,如果您遵循这些步骤,您将看到id_service=
查询的一部分缺少值或值不正确。这是什么原因?您正在使用$wpdb->prepare()
插入$id
. 但是什么是$id
? 在你用过的这条线上explode()
要创建它,请执行以下操作:
$id = explode("-s", $id);
什么是
explode()
做如果您只需找到
explode()
article in the PHP manual 您将看到:
返回字符串数组。。。
所以$id
是字符串数组。
什么是$wpdb->prepare()
做它可以用SQL字符串中的变量安全地替换占位符。As documented:
查询字符串中可以使用以下占位符:%d(整数)%f(浮点)%s(字符串)
但在你的代码中%d
, 用于替换整数,但如上所述,$id
不是整数。这是一个字符串数组。因此,如果您的问题是:$id
is not the right value for what you\'re trying to do.
这是我在不知道你想做什么的情况下所能做到的。但是如果您按照我上面概述的调试步骤进行操作,您应该能够找出哪里出了问题。