• 06-02-2025, 23:11:03
    #1
    Mssql bir veritabanım var burada ki bir tabloyu verileri ile birlikte mysql'e geçirmem gerekiyor migration araçlarını denedim ama başarılı olamadım bu konuda bilgisi olan ve yardımcı olabilecek var mı acaba ?
  • 06-02-2025, 23:20:51
    #2
    php ile yapmak istersen

    <?php
    // MSSQL Bağlantısı (SQL Server için)
    $serverName = "MSSQL_SERVER_IP"; // MSSQL sunucu IP veya adı
    $database = "mssql_db";
    $username = "sa";
    $password = "password";
    
    try {
        $mssql = new PDO("sqlsrv:server=$serverName;Database=$database", $username, $password);
        $mssql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
        die("MSSQL bağlantı hatası: " . $e->getMessage());
    }
    
    // MySQL Bağlantısı
    $mysqlHost = "MYSQL_SERVER_IP";
    $mysqlDb = "mysql_db";
    $mysqlUser = "root";
    $mysqlPass = "password";
    
    try {
        $mysql = new PDO("mysql:host=$mysqlHost;dbname=$mysqlDb;charset=utf8", $mysqlUser, $mysqlPass);
        $mysql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
        die("MySQL bağlantı hatası: " . $e->getMessage());
    }
    
    // MSSQL'den Verileri Al
    $query = "SELECT * FROM table_name"; // MSSQL'deki tablo adı
    $mssqlStmt = $mssql->prepare($query);
    $mssqlStmt->execute();
    $rows = $mssqlStmt->fetchAll(PDO::FETCH_ASSOC);
    
    // MySQL'e Verileri Aktar
    foreach ($rows as $row) {
        $columns = implode(", ", array_keys($row));
        $placeholders = ":" . implode(", :", array_keys($row));
        
        $insertQuery = "INSERT INTO table_name ($columns) VALUES ($placeholders)";
        $mysqlStmt = $mysql->prepare($insertQuery);
    
        foreach ($row as $key => $value) {
            $mysqlStmt->bindValue(":$key", $value);
        }
        
        $mysqlStmt->execute();
    }
    
    echo "Veri aktarımı tamamlandı.";
    
    // Bağlantıları Kapat
    $mssql = null;
    $mysql = null;
    ?>