有一个奇怪的问题,经过几分钟的摆弄,我无法弄清楚。
$quotifiedValues = "'" . str_replace(",", "', '", $string) . "'";
我有这一行来引用为SQL准备的东西。
让我们假设$ string =" key,value"。
$ quotifiedValues =应该成为"' key',' value'"。
它实际上变成了"' key','值'"
这里至关重要的是存在一个额外的空间。单词值以额外空格为前缀。我检查了输入,当然,没有额外的空间。但我无法从str_replace()的输出中消除它。任何有关正在发生的事情的建议都非常感谢。
答案 0 :(得分:2)
制作
$quotifiedValues = "'" . str_replace(", ", "', '", $string) . "'";
请注意,我们现在替换", "
而不是","
。
答案 1 :(得分:1)
使用preg_replace
。
$string = "key , value";
echo "'" . preg_replace("/\s*,\s*/", "', '", $string) . "'";
严肃地说,考虑使用准备好的陈述。这样的黑客可以让你在某一天或另一天遇到麻烦。