Pakliže migrujeme webové stránky spolu s databází, je nutné nahradit veškeré výskyty např. staré domény za tu novou.
Jelikož phpMyAdmin nepodporuje hromadné najít&nahradit (lze to udělat pouze v předem definovaných tabulkách a sloupcích), musíme si pomoci vlastním PHP skriptem, který vše obstará za nás:
<?php
// připojení k databází
$server= "server";
$jmeno = "jmeno";
$heslo = "heslo";
$databaze = "databaze";
mysql_connect($server, $jmeno, $heslo);
// jake stringy - retezce - chceme najit ($najit) a cim je nahradit ($nahradit)
$najit = "text-ktery-chceme-nahradit";
$nahradit = "text-kterym-chceme-nahrazovat";
//samotne nahrazeni stringu - retezcu
$loop = mysql_query("
SELECT
concat('UPDATE ',table_schema,'.',table_name, ' SET ',column_name, '=replace(',column_name,', ''{$najit}'', ''{$nahradit}'');') AS s
FROM
information_schema.columns
WHERE
table_schema = '{$databaze}'")
or die ('Nelze nahradit vyskyty: ' . mysql_error());
while ($query = mysql_fetch_assoc($loop))
{
mysql_query($query['s']);
}
?>
Ve výše uvedeném skriptu stačí pouze doplnit přihlašovací údaje k databázi ($server, $jmeno, $heslo, $databaze) a změnit odpovídající stringy (řetězce), které chcete napříč celou databází změnit.
Doplňte tedy aktuální řetězec ($najit), který chcete najít a nahradit ho novým řetězcem ($nahradit).
Nakonec skript spusťte. Jen si dejte pozor, zda Vám stačí na Vašem hostingu/serveru dostatečný max_execution_time. Například Databáze o velikosti 20MB se zpracovávala na poměrně výkonném serveru kolem 5 vteřin.

Díky moc za script.
Jen mi nefunguje na php 7.3. Jde to nějak poladit? Děkuji.
Ahoj Romane, určitě! Mělo by stačit zaměnit starší, již nepodporovanou, funkci mysql_* za novější mysqli_*, která je v PHP 7.3 podporovaná. 🙂