Возникла странная проблема, которую я не могу понять после нескольких минут возни.
$quotifiedValues = "'" . str_replace(",", "', '", $string) . "'";
У меня есть эта строка, чтобы процитировать вещи, готовые для SQL.
Предположим, $ string = «ключ, значение».
$ quotifiedValues = должно стать «ключом», «значением».
Что это на самом деле становится, хотя это «ключ», «значение».
Ключевым моментом здесь является наличие дополнительного места. Значение слова начинается с дополнительного пробела. Я проверил входы и, конечно же, там нет лишнего места. Тем не менее я не могу исключить его из вывода str_replace (). Любой совет о том, что происходит, высоко ценится.
Сделать это
$quotifiedValues = "'" . str_replace(", ", "', '", $string) . "'";
Обратите внимание, что мы заменим ", "
сейчас вместо ","
,
использование preg_replace
.
$string = "key , value";
echo "'" . preg_replace("/\s*,\s*/", "', '", $string) . "'";
Если серьезно, подумайте об использовании подготовленных заявлений. Такие хаки могут так или иначе вызвать у вас проблемы.