str_replace () добавляет дополнительный пробел к своему вводу

Возникла странная проблема, которую я не могу понять после нескольких минут возни.

    $quotifiedValues = "'" . str_replace(",", "', '", $string) . "'";

У меня есть эта строка, чтобы процитировать вещи, готовые для SQL.

Предположим, $ string = «ключ, значение».

$ quotifiedValues ​​= должно стать «ключом», «значением».

Что это на самом деле становится, хотя это «ключ», «значение».

Ключевым моментом здесь является наличие дополнительного места. Значение слова начинается с дополнительного пробела. Я проверил входы и, конечно же, там нет лишнего места. Тем не менее я не могу исключить его из вывода str_replace (). Любой совет о том, что происходит, высоко ценится.

0

Решение

Сделать это

$quotifiedValues = "'" . str_replace(", ", "', '", $string) . "'";

Обратите внимание, что мы заменим ", " сейчас вместо ",",

2

Другие решения

использование preg_replace.

$string = "key  , value";
echo "'" . preg_replace("/\s*,\s*/", "', '", $string) . "'";

Если серьезно, подумайте об использовании подготовленных заявлений. Такие хаки могут так или иначе вызвать у вас проблемы.

1

По вопросам рекламы [email protected]