Замена строки апострофом в MySQL при выполнении запроса поиска и замены - PullRequest
1 голос
/ 01 августа 2020

У меня есть таблица my_table с 2 полями ID и dbtext.

Поля в базе данных:

ID: 1 dbtext: Привет, это материал Бобби

Я пытаюсь найти и заменить текст в поле dbtext. Вот мой код:

$findtext = 'Hi this is Bobby\'s Stuff';
$replacetext = 'Hi this is Larry\'s Stuff';

$findtext = stripslashes($findtext);
$replacetext = stripslashes($replacetext);



  $sql = "UPDATE my_table SET dbtext = REPLACE(dbtext,'" . $findtext . "','" . $replacetext . "') WHERE ID = '" . $ID . "' ";
$wpdb->query($sql);

К сожалению, когда я убираю косые черты, запрос не запускается из-за того, что одинарные кавычки нарушают его.

Однако, если я не убираю косые черты, запрос не найдет совпадения, поскольку в базе данных нет sla sh.

Как мне справиться с этим и убедиться, что он будет работать с одиночными кавычками и ситуациями с двойными кавычками?

1 Ответ

1 голос
/ 01 августа 2020

Mysql следует схеме тройного SLA sh для дополнительной безопасности. Попробуйте ввести код ниже

$findtext = 'Hi this is Bobby\\\'s Stuff';
$replacetext = 'Hi this is Larry\\\'s Stuff';

  $sql = "UPDATE my_table SET dbtext = REPLACE(dbtext,'" . $findtext . "','" . $replacetext . "') WHERE ID = '" . $ID . "' ";
$wpdb->query($sql);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...