首页 > 解决方案 > 如何替换方括号中的文本以进行数据库更改?

问题描述

我们正在将图库软件从 shareprints 更改为 foogallery,并且需要更改他们在博客文章中使用的 id。帖子内容现在具有以下简写代码:

[shareprints gallery_id="14629" gallerytype = 0 等]

我们需要将其更改为:

[foogallery gallery_id="14629"]

所以我需要更改画廊的名称,然后去掉方括号中的其余文本,而不更改方括号之外的文本。

有没有用 MySQL 做这件事,或者有人对如何做这件事有任何其他建议吗?

谢谢

标签: phpmysql

解决方案


最简单的方法就是编写脚本并更新所有内容。除非您有数百万个条目,否则这将是更简单的方法。只需连接 MYSQL,将所有行放入一个数组中,然后循环并在每次迭代中更新。

<?php
// Get all results in mysql sample data underneath
$input_lines = array(
    array(
        "id" => 1, 
        "line"=>'[shareprints gallery_id="14629" gallerytype = 0, etc]'
    )
);
// Loop each data 
foreach($input_lines as $l) {
    // Replace with new format
    preg_match_all('/\[[a-zA-Z]*\ ([^\ ]*)[^]]*/', $l['line'], $output_array);
    $input_lines = "[testname ". $output_array[1][0]."]"; // Change with new name here
    // var_dump($input_lines);
    // Update mysql with ID (l['id'] here)
}
?>

推荐阅读