PDA

Просмотр полной версии : [Руководство] Из Mssql в Mysql


"Unix
05.09.2011, 23:42
PHP Скрипт для конверта
Заполняем 'ХОСТ' - IP адрес MSSQL и MySQL
'ЛОГИН', 'ПАРОЛЬ' для подключения к базам и вписываем имена своих баз.

Запускаете скрипт и ждёте окончания конверта



<?php
if (isset($_REQUEST['act'])) {

mssql_connect('ХОСТ','ЛОГИН','ПАРОЛЬ К MSSQL БД');
mysql_connect('ХОСТ','ЛОГИН','ПАРОЛЬ К MYSQL БД');

mssql_select_db('ИМЯ БД MSSQL'); mysql_select_db('ИМЯ БД MySQL');
$a=$_REQUEST['act'];
$glob=($_REQUEST['act']=='all');
set_time_limit(3600);
if ($a=='ur' || $glob) {
$q=mssql_query("select ID,name,passwd,Prompt,answer,truename,idnumber,ema il,mobilenumber,province,city,
phonenumber,address,postalcode,gender,convert(varc har,birthday,120),convert(varchar,creatime,120),qq ,passwd2 from users");
$r=array();
while ($t=mssql_fetch_row($q)) { $t[2]=base64_encode($t[2]); unset($t[18]); $r[]=$t; }
$c=count($r);
$a='';
for ($i=0;$i<$c;$i++)
{
if ($c-$i<45)
{
if ($a!='')
{
$a=trim($a,',');
mysql_query("insert into users values {$a}");
$a='';
}
$t=$r[$i];
mysql_query("insert into users values({$t[0]},'{$t[1]}','{$t[2]}','{$t[3]}','{$t[4]}','{$t[5]}','{$t[6]}',
'{$t[7]}','{$t[8]}','{$t[9]}','{$t[10]}','{$t[11]}','{$t[12]}','{$t[13]}','{$t[14]}','{$t[15]}',
'{$t[16]}','{$t[17]}','{$t[2]}')");
}
else
{
$t=$r[$i];
if ($i % 50 == 49)
{
$a=trim($a,',');
mysql_query("insert into users values {$a}");
$a='';
}
$a.="({$t[0]},'{$t[1]}','{$t[2]}','{$t[3]}','{$t[4]}','{$t[5]}','{$t[6]}',
'{$t[7]}','{$t[8]}','{$t[9]}','{$t[10]}','{$t[11]}','{$t[12]}','{$t[13]}','{$t[14]}','{$t[15]}',
'{$t[16]}','{$t[17]}','{$t[2]}'),";
}
}
echo("<b>Users replication complete: added {$c} fields</b>"); if ($glob) echo '<br>';
}
if ($a=='ar' || $glob)
{
$q=mssql_query("select * from auth");
$r=array();
while ($t=mssql_fetch_row($q)) { $r[]=$t; }
$c=count($r);
$a='';
for ($i=0;$i<$c;$i++)
{
if ($c-$i<45)
{
if ($a!='')
{
$a=trim($a,',');
mysql_query("insert into auth values {$a}");
$a='';
}
$t=$r[$i];
mysql_query("insert into auth values({$t[0]},'{$t[1]}','{$t[2]}')");
}
else
{
$t=$r[$i];
if ($i % 50 == 49)
{
$a=trim($a,',');
mysql_query("insert into auth values {$a}");
$a='';
}
$a.="({$t[0]},'{$t[1]}','{$t[2]}'),";
}
}
echo("<b>Auths replication complete: added {$c} fields</b>"); if ($glob) echo '<br>';
}
if ($a=='fr' || $glob)
{
$q=mssql_query("select userid,type,convert(varchar,ctime,120),forbid_time ,reason,gmroleid from forbid");
$r=array();
while ($t=mssql_fetch_row($q)) { $t[4]='0x'.bin2hex($t[4]); $r[]=$t; }
$c=count($r);
$a='';
for ($i=0;$i<$c;$i++)
{
if ($c-$i<45)
{
if ($a!='')
{
$a=trim($a,',');
mysql_query("insert into forbid values {$a}");
$a='';
}
$t=$r[$i];
mysql_query("insert into forbid values({$t[0]},'{$t[1]}','{$t[2]}','{$t[3]}','{$t[4]}','{$t[5]}')");
}
else
{
$t=$r[$i];
if ($i % 50 == 49)
{
$a=trim($a,',');
mysql_query("insert into forbid values {$a}");
$a='';
}
$a.="({$t[0]},'{$t[1]}','{$t[2]}','{$t[3]}','{$t[4]}','{$t[5]}'),";
}
}
echo("<b>Forbids replication complete: added {$c} fields</b>"); if ($glob) echo '<br>';
}
if ($a=='cr' || $glob) {
$q=mssql_query("select userid,zoneid,sn,aid,point,cash,status,
convert(varchar,creatime,120),convert(varchar,fint ime,120) from usecashlog");
$r=array();
while ($t=mssql_fetch_row($q)) { $r[]=$t; }
$c=count($r); $c2=$c;
$a='';
for ($i=0;$i<$c;$i++)
{
if ($c-$i<45)
{
if ($a!='')
{
$a=trim($a,',');
mysql_query("insert into usecashlog values {$a}");
$a='';
}
$t=$r[$i];
mysql_query("insert into usecashlog values({$t[0]},'{$t[1]}','{$t[2]}','{$t[3]}','{$t[4]}','{$t[5]}','{$t[6]}',
'{$t[7]}','{$t[8]}')");
}
else
{
$t=$r[$i];
if ($i % 50 == 49)
{
$a=trim($a,',');
mysql_query("insert into usecashlog values {$a}");
$a='';
}
$a.="({$t[0]},'{$t[1]}','{$t[2]}','{$t[3]}','{$t[4]}','{$t[5]}','{$t[6]}',
'{$t[7]}','{$t[8]}'),";
}
}
$q=mssql_query("select userid,zoneid,sn,aid,point,cash,status,
convert(varchar,creatime,120) from usecashnow");
$r=array();
while ($t=mssql_fetch_row($q)) { $r[]=$t; }
$c=count($r); $c1=$c;
$a='';
for ($i=0;$i<$c;$i++)
{
if ($c-$i<45)
{
if ($a!='')
{
$a=trim($a,',');
mysql_query("insert into usecashnow values {$a}");
$a='';
}
$t=$r[$i];
mysql_query("insert into usecashnow values({$t[0]},'{$t[1]}','{$t[2]}','{$t[3]}','{$t[4]}','{$t[5]}','{$t[6]}',
'{$t[7]}')");
}
else
{
$t=$r[$i];
if ($i % 50 == 49)
{
$a=trim($a,',');
mysql_query("insert into usecashnow values {$a}");
$a='';
}
$a.="({$t[0]},'{$t[1]}','{$t[2]}','{$t[3]}','{$t[4]}','{$t[5]}','{$t[6]}',
'{$t[7]}'),";
}
}
echo("<b>Cash replication complete: added {$c1} fields to NOW, {$c2} fields to LOG</b>"); if ($glob) echo '<br>';
}
if ($a=='lol') echo'<b>Select something!</b>';
}
if ($glob) die('All done!');
?>
<br>
<form action="" method="get">
<select name="act">
<option value="lol">Select something!</option>
<option value="ur">Users replication</option>
<option value="ar">Auths replication</option>
<option value="fr">Forbids replication</option>
<option value="cr">Cash replication</option>
<option value="all">Replicate ALL</option>
</select>
<input type="submit">
</form>

(C) Chaos13