Получить запись из тегов полосы MySQL, а затем обновить

1

У меня есть поле (описание) в базе данных MySQL (poi). Я хочу использовать php и strip_tags для удаления HTML из всех записей в базе данных. Затем я хочу обновить результат до того же поля описания в базе данных.

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

// check connection
if(mysqli_connect_errno()) {
  echo "Connection Failed: " . mysqli_connect_errno();
  exit();
}
    $sql_article = "SELECT Description FROM poi";
    $result = $mysqli->query($sql_article);

// Iterates through the MySQL results
while ($row = $result->fetch_array())
{
$Description_no_html = strip_tags($row['Description']);
printf("%s<br />\n", $Description_no_html);
}
Теги:
mysqli

1 ответ

1
Лучший ответ

В идеале каждая строка будет иметь уникальный столбец идентификатора, который вы можете использовать, чтобы указать, какую строку обновлять, используя подготовленный оператор:

$sql_article = "SELECT id, Description FROM poi";
$result = $mysqli->query($sql_article);
$stmt = $mysqli->prepare("UPDATE poi SET Description = ? WHERE id = ?");
// Iterates through the MySQL results
while ($row = $result->fetch_array())
{
    $Description_no_html = strip_tags($row['Description']);
    printf("%s<br />\n", $Description_no_html);
    $stmt->bind_param("si",$Description_no_html,$row['id']);
    $stmt->execute();
}

Если у вас нет уникального столбца id, используйте вместо этого следующий оператор

$stmt = $mysqli->prepare("UPDATE poi SET Description = ? WHERE Description = ?");

а также

$stmt->bind_param("ss",$Description_no_html,$row['Description']);

Альтернатива: удаление дескрипторов непосредственно в mysql

Вы можете создать пользовательскую функцию mysql, которая разбивает теги (qaru.site/questions/344827/...) и использует следующий запрос

 UPDATE poi SET Description = strip_tags(Description)

Отказ от ответственности: я не уверен, насколько хорошо работает вышеупомянутый mysql strip_tags, поэтому ваш пробег может варьироваться в зависимости от вашего контента.

  • 0
    Спасибо за быстрый и полезный ответ, все получилось! У меня есть уникальное поле идентификатора, поэтому я использовал это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню