mysql — PHP String обрабатывает имена с апострофами

Если в базе данных есть имя (т. Е. 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-инъекцией, я просто пытаюсь обрабатывать строки с апострофами.

-2

Решение

Пытаться addslashes чтобы избежать косых черт.

$string = addslashes($value);
0

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

Если вы хотите заменить что-то в строке, просто используйте str_replace()

$str = str_replace($str, "'", '-');
0

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