在文本中找到Url并在mysql数据库中删除它


find Url among text and erase it in mysql database

我需要做的是:

  1. 在长文本字段中查找url文本
  2. 从文本中删除url。
  3. 用新值更新文本字段

到目前为止,我可以用以下代码在长文本中找到Url:

SELECT colomname FROM tablename
 WHERE colomname REGEXP "(https?:'/'/|www'.)['.A-Za-z0-9'-]+'.[a-zA-Z]{2,4}"

首先,在SELECT查询中,不是只选择保存文本的columnname,而是选择记录的id。您可以使用查询结果并在php中遍历它。在循环中,你将执行:

foreach ($data as $item) {
    $text = preg_replace('/https?://|www.)[.A-Za-z0-9-]+.[a-zA-Z]{2,4}/', '', $item['columnname']);
    $pdoData = [':text' => $text, ':id' => $id];
    $stmt = $pdo->prepare('UPDATE table SET columnname=:text WHERE id=:id');
    $stmt->execute($pdoData);
}