Created
January 1, 2010 22:58
-
-
Save akitaonrails/267295 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Script written by Vladislav "FractalizeR" Rastrusny | |
// http://www.fractalizer.ru | |
//MySQL connection settings | |
$db_server = 'localhost'; | |
$db_user="root"; | |
$db_password=""; | |
mysql_connect($db_server, $db_user, $db_password) or die(mysql_error()); | |
//Put here a list of databases you need to change charset at or leave array empty to change all existing | |
$dblist=array(); | |
//If changing at all databases, which databases to skip? information_schema is mysql system databse and no need to change charset on it. | |
$skip_db_list = array('information_schema', 'mysql'); | |
//Which charset to convert to? | |
$charset="utf8"; | |
//Which collation to convert to? | |
$collation="utf8_general_ci"; | |
//Only print queries without execution? | |
$printonly=true; | |
//Getting database names if they are not specified | |
$skip_db_text = '"'.implode('", "', $skip_db_list).'"'; | |
if(count($dblist)<1) { | |
$sql="SELECT GROUP_CONCAT(`SCHEMA_NAME` SEPARATOR ',') AS FRST FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME` NOT IN ($skip_db_text)"; | |
$result = mysql_query($sql) or die(mysql_error()); | |
$data = mysql_fetch_assoc ($result); | |
$dblist=explode(",", $data["FRST"]); | |
} | |
//Iterating databases | |
foreach ($dblist as $dbname) { | |
$sql="SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET $charset COLLATE $collation;') as FRST FROM `information_schema`.`TABLES` t WHERE t.`TABLE_SCHEMA` = '$dbname' ORDER BY 1"; | |
$result = mysql_query($sql) or die(mysql_error()); | |
while ($row = mysql_fetch_assoc($result)) { | |
echo $row["FRST"]."\r\n"; | |
if(!$printonly) { | |
mysql_query($row["FRST"]) or die(mysql_error()); | |
} | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment