我在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);
}
答案 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
的效果如何,因此您的里程可能因内容而异。