从MySQL条带标签获取记录然后更新

时间:2015-10-10 03:30:01

标签: php mysqli

我在MySQL数据库(poi)中有一个字段(描述)。我希望使用php和strip_tags从数据库中的所有记录中删除HTML。然后,我想将结果更新到数据库中的相同Description字段。

获取字符串并剥离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);
}

1 个答案:

答案 0 :(得分:1)

理想情况下,每一行都有一个唯一的id列,您可以使用它来指定使用预准备语句更新哪一行:

$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函数来剥离标记(https://stackoverflow.com/a/13346684/3574819)并使用以下查询

 UPDATE poi SET Description = strip_tags(Description)

免责声明:我不确定以上引用的mysql strip_tags的效果如何,因此您的里程可能因内容而异。