SQL条件下内爆数组和字符串串联的问题

时间:2018-07-20 12:35:58

标签: php sql wordpress implode

我没什么问题。我内爆数组($ 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'

1 个答案:

答案 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字符串的值结尾的值。

这些是我可以看到的一些选项,但是如果您提供更多信息(例如整个查询)或代码的较大部分,我们将更加具体。