Если в базе данных есть имя (т. Е. O’Reilly), и я создаю инструкцию вставки для вставки этого имени в базу данных с помощью SQL-запроса в сценарии PHP, это вызовет ошибку, поскольку апостроф в имени закончится строка и вызовет сбой запроса (‘O’Reilly’). Есть ли способ использовать strpos (), чтобы найти эти апострофы и заменить их тире / пробел / запятая / и т.д.
я пытался
$pos = strpos($value, "'");
if($pos!==false)
{
$value[$pos] = "-";
}
Но это заменит больше, чем я хочу в некоторых столбцах.
Я надеялся на что-то более похожее
$pos = strpos($value, "char'char");
if($pos!==false)
{
$value[$pos] = "-";
}
Где слова «char» были заменены каким-либо буквенно-цифровым индикатором, чтобы сценарий мог заменить только апострофы в именах. Есть ли способ сделать это в PHP?
Этот вопрос не имеет ничего общего с SQL-инъекцией, я просто пытаюсь обрабатывать строки с апострофами.
Пытаться addslashes
чтобы избежать косых черт.
$string = addslashes($value);
Если вы хотите заменить что-то в строке, просто используйте str_replace()
$str = str_replace($str, "'", '-');