Backup Sql Server To Mysql from PHP
Se presentó la necesidad de generar un respaldo desde una base datos SQL Server a MySql. El problema que existía era que, los datos que estaban en SQL Server eran una vista de la base de datos del programa SAP por lo que, la cantidad de datos que tenia era monumental. La solución, un backup para obtener solo los datos necesarios.
En el primer enunciado tenemos las conexiones tanto a SQL Server como a MySql. En el if validamos que se esta realizando correctamente la conexión de Mysql. Luego generamos los arrays donde, $tablas corresponde a las tablas de MySql. Luego en $querys, tenemos los Select para obtener los datos de SQL Server.
Ya en el ciclo FOR tendremos todo el procedimiento para, primero truncar las tablas y después ingresar los datos en Mysql.
$user = 'usrpm1rpt'; $pass = 'reportes2015*'; $server = '172.16.3.41'; $database = 'ICPSAP'; $connection_string = "DRIVER={SQL Server};SERVER=$server;DATABASE=$database"; $conn = odbc_connect($connection_string,$user,$pass); $conexion = mysql_connect("localhost", "root", "root"); mysql_select_db("mmdb", $conexion); if ($conn) { echo "Conexion a ICPSAP establecida."."\n"; $tablas = array("TB_MYSQL1","TB_MYSQL2","TB_MYSQL3"); $Querys = array("SELECT * FROM TABLA_SQLSERVER1", "SELECT * FROM TABLA_SQLSERVER2", "SELECT * FROM TABLA_SQLSERVER3"); for ($i=0; $i < count($tablas) ; $i++) { $sql = "$Querys[$i]"; $res = odbc_exec($conn,$sql); $quetrunc = "TRUNCATE ".$tablas[$i].""; $resEmp = mysql_query($quetrunc, $conexion) or die(mysql_error()); while($myRow = odbc_fetch_array( $res )){ $columns = implode(", ",array_keys($myRow)); $escaped_values = array_map('mysql_real_escape_string', array_values($myRow)); $values = implode("', '", $escaped_values); $values = utf8_decode($values); $sql2 = "INSERT INTO ".$tablas[$i]." ($columns) VALUES ('$values')"; $resEmp = mysql_query($sql2, $conexion) or die(mysql_error()); } } mysql_close(); } else{ die("Error en la conexion."); }
En el primer enunciado tenemos las conexiones tanto a SQL Server como a MySql. En el if validamos que se esta realizando correctamente la conexión de Mysql. Luego generamos los arrays donde, $tablas corresponde a las tablas de MySql. Luego en $querys, tenemos los Select para obtener los datos de SQL Server.
Ya en el ciclo FOR tendremos todo el procedimiento para, primero truncar las tablas y después ingresar los datos en Mysql.
Comentarios
Publicar un comentario