Nếu bạn chỉ đơn giản tìm kiếm và thay thế như vậy, bạn sẽ khiến dữ liệu được tuần tự hóa không thể nhận dạng được. Đây là những gì bạn cần làm:
$old = 'http://www.google.com';
$new = 'http://www.someplace.com';
$search = 's:' . strlen($old) .':"' . $old . '"';
$replace = 's:' . strlen($new) .':"' . $new . '"';
$query = "UPDATE config SET array=REPLACE(array, '{$search}', '{$replace}');";
Thay thế $old
và $new
với url hiện tại và mục tiêu của bạn, hãy chạy tập lệnh và thực hiện $query
đã tạo .
Đây là một giải pháp SQL thuần túy:
SET @search := 'http://www.original.com';
SET @replace := 'http://www.target.com';
UPDATE config SET array=REPLACE(array, CONCAT('s:', LENGTH(@search), ':"', @search, '"'), CONCAT('s:', LENGTH(@replace), ':"', @replace, '"'));
Lưu ý rằng điều này sẽ thay thế MỌI sự xuất hiện của chuỗi tìm kiếm trong mảng được tuần tự hóa của bạn. Nếu bạn đang tìm cách thay thế một khóa cụ thể, bạn phải thay thế một khóa cụ thể hơn.