我没什么问题。我内爆数组($ imploded_arr)。我想在下一个变量($ godz)的SQL条件中使用它。看起来像这样:
r3.meta_key LIKE '$imploded%$godz' .
但是它不起作用。 “逗号”可能出了问题。这是代码,看起来像我的imploded_arr:
$imploded_arr = implode("','", $abc);
可以做这样的事情吗? 谢谢前进
我以其他方式修复了它,也许会帮助某人:
imploded = implode("|", $abc);
r3.meta_key LIKE 'location%$godz' AND r3.meta_key REGEXP '$imploded'
答案 0 :(得分:0)
可以像这样完成一个简单的爆破:
$imploded_arr = implode(',', $abc);
这意味着您插入了数组值,并用逗号“粘合”了它们。如果要组合使用单引号/逗号/单引号,则应使用您的单引号/逗号/单引号。问题出在您的查询中。 Like
不能这样工作。百分比符号(通配符)在开头或结尾或两者都出现。
因此,如果您想在查询中使用LIKE,因为不清楚要做什么,我看到了一些选择。
在您的php代码中,您都创建了一个新字符串,将您的值串联起来:
$NewValue=$imploded_arr.$godz
然后尝试
r3.meta_key LIKE '%$NewValue%'
在您的示例中,我还看到您在内部使用了错误的变量名,例如也请检查一下。您正在使用$imploded
而不是$imploded_arr
另一个选择是使用两个like,然后像这样处理结果:
r3.meta_key LIKE '$imploded_arr%' and r3.meta_key LIKE '%$godz'
这意味着您将检查以$ imploded_arr字符串的值开头和以$ godz字符串的值结尾的值。
这些是我可以看到的一些选项,但是如果您提供更多信息(例如整个查询)或代码的较大部分,我们将更加具体。