Nekem ma kellett ez, gondoltam megosztom veletek is, hátha majd más is hasznát veszi.
A lényege, hogy ez egy olyan PHP program, amit ha beilleszted egy valamicsoda.php fájlba, kitöltöd a megfelelő részeket - majd a böngésződben futtatod (hxxxp://honlapod.com/valamicsoda.php) - akkor arra lesz képes ez a program, hogy az adatbázisodban az összes “akámilyen” szöveget lecseréld egy “akámilyen2” másik szövegre. Természetesen minden egyező szöveget cserél, tehát csak óvatosan vele. Akkor is cserél, ha az a bizonyos szöveg egy másik szóban található meg pl: “egyakármilyenszöveg” esetében is lecseréli az előbbi példánál maradva: “egyakármilyen2szöveg” -re.
Tudom, ez egy kissé amatőr a leírásra sikeredett, de a lényeg úgy is ez:
/****************
* Konfiguráció *
****************/
// MySQL kapcsolódási adatok
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'username');
define('MYSQL_PASS', 'password');
// Mely adatbázisokon legyen csere
$mysql_dbs = array('database1', 'database2', 'database3');
// Miről mire legyen csere
$from = 'egyikszövegről';
$to = 'másikszövegre';
/****************
* Program *
****************/
set_time_limit(0);
$mysqli = new MySQLi(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
if(mysqli_connect_errno() != 0)
{
echo 'Hiba: #' . mysqli_connect_errno() . ' | ' . mysqli_connect_error() . '
';
exit;
}
$from = $mysqli->real_escape_string($from);
$to = $mysqli->real_escape_string($to);
echo '
Futtatott utasítások:
';
foreach($mysql_dbs as $database)
{
$query = "SHOW TABLES FROM `{$database}`;";
echo '
' . $query . '
';
$tables = $mysqli->query($query);
if($mysqli->errno != 0)
{
echo "Hiba: #{$mysqli->errno} | {$mysqli->error}
";
break;
}
while(list($table) = $tables->fetch_row())
{
$query = "SHOW COLUMNS FROM `{$database}`.`{$table}`;";
echo '
' . $query . '
';
$fields = array();
$columns = $mysqli->query($query);
if($mysqli->errno != 0)
{
echo "Hiba: #{$mysqli->errno} | {$mysqli->error}
";
break 2;
}
while(list($column) = $columns->fetch_row())
$fields[] = "`{$column}` = REPLACE(`{$column}`, '{$from}', '{$to}')";
$query = "UPDATE `{$database}`.`{$table}` SET " . implode(', ', $fields) . ";";
echo $query . '
';
$mysqli->query($query);
if($mysqli->errno != 0)
{
echo "Hiba: #{$mysqli->errno} | {$mysqli->error}
";
break 2;
}
}
}
echo '
A futás befejeződött!
';Konfiguráció alatt értelemszerűen töltsd ki a MySQL kapcsolódási adatokat.
Mely adatbázisokon legyen csere:
Nekem csak egy adatbázisban kellett a csere, ezért én így módosítottam:
$mysql_dbs = array('database1');
Miről mire legyen csere
Értelemszerűen "egyikszövegről" legyen csere "egymásikszövegre"
A Script böngészőben futtatva automatikusan elindul - majd a futtatás végén kiírja a módosított táblák nevét stb.stb...
Ezt a PHP Scriptet Warner barátom készítette nekem, ezért úgy gondolom ez a kis backlink jár neki.
Használja egészséggel az, akinek épp egy ilyenre volt szüksége.
