Heim  >  Artikel  >  php教程  >  mysql 修改表引擎:php批量转换mysql表引擎

mysql 修改表引擎:php批量转换mysql表引擎

WBOY
WBOYOriginal
2016-06-21 08:51:361108Durchsuche

有些时候可能需要批量转换mysql表的引擎,如下为php操作实现
/**
* 批量转换mysql表引擎
*/
error_reporting(e_all);
// 数据库连接配置
$host = 'localhost';
$username = 'root';
$passwd = '';
$database = 'test';
// 要转换的库名配置,多库转换增加配置元素即可
$configs = array($database);
// 转换配置
$convert_rule = array(
'from' => 'innodb',
'to' => 'myisam'
);
mysql_engine_convert();
/**
* 转换函数
*/
function mysql_engine_convert()
{
global $host,$username,$passwd,$configs,$convert_rule;
if ( ($conn = mysql_connect($host, $username, $passwd)) !== false)
{
foreach ($configs as $db_name)
{
mysql_select_db($db_name) or exit('not found db: '. $db_name);
$tables = mysql_query("show full tables");
while ($table = mysql_fetch_row($tables))
{
if ($table[1] === 'view') continue;
$sql = "show table status from {$db_name} where name='{$table[0]}' ";
if ($result = mysql_query($sql))
{
$table_status = mysql_fetch_row($result);
if (strtolower($table_status[1]) == strtolower($convert_rule['from']))
mysql_query("alter table {$table[0]} engine = {$convert_rule['to']}");
}
}
echo $db_name,':all tables engine is ',$convert_rule['to'],"\n";
}
} else {
echo "db error\n";
}
} 本文链接http://www.cxybl.com/html/wlbc/Php/20120607/28510.html



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn