使用php将大量记录从sql server插入mysql

使用php将大量记录从sql server插入mysql,php,mysql,database,bulkinsert,sql-insert,Php,Mysql,Database,Bulkinsert,Sql Insert,我想使用php脚本同步mssql和mysql,这样每当我通过选择表按下同步按钮时,php脚本就必须从mssql中获取记录并将该记录插入mysql,这对几千条记录来说效果很好,但如果我尝试将100000条记录插入mysql,我会遇到类似“mysql服务器消失”这样的错误“500内部服务器错误” 有没有办法使用 PHP?或者其他建议 有一些问题 在stackoverflow中与此相关,但我找不到任何工作 解决方案 我的代码是 <?php include("db.php"); //get r

我想使用php脚本同步mssql和mysql,这样每当我通过选择表按下同步按钮时,php脚本就必须从mssql中获取记录并将该记录插入mysql,这对几千条记录来说效果很好,但如果我尝试将100000条记录插入mysql,我会遇到类似“mysql服务器消失”这样的错误“500内部服务器错误”

  • 有没有办法使用 PHP?或者其他建议
  • 有一些问题 在stackoverflow中与此相关,但我找不到任何工作 解决方案
我的代码是

<?php
include("db.php");
//get relevant records
$ms_sql_query= "select * from Schedule";
$ms_result = mssql_query($ms_sql_query);
$ms_numRows = mssql_num_rows($ms_result);
$insertCount=0;
$updateCount=0;
if($ms_numRows > 0)
{
    while($row = mssql_fetch_array($ms_result))
    {
        $ret=mysql_query("SELECT * FROM feesh WHERE SyncID=".$row['SyncID']);
        $count=mysql_num_rows($ret);

        if($count==0) 
        {
            $sync_query="insert into feesh (Schid, installNo, Studentid, DueDate, Specialfee, TransportFee, Tution, Others, Tu_Status, TR_Status, oth_status, ADMIN_NO,SyncID) VALUES ('".$row['Schid']."','".$row['installNo']."','".$row['Studentid']."','".$row['DueDate']."','".$row['Specialfee']."','".$row['TransportFee']."','".$row['Tution']."','".$row['Others']."','".$row['Tu_Status']."','".$row['TR_Status']."','".$row['oth_status']."','".$row['ADMIN_NO']."','".$row['SyncID']."')";
            $insertCount++;
        }
        else 
        {
            $sync_query="update feesh set Schid = '".$row['Schid']."', installNo = '".$row['installNo']."', Studentid = '".$row['Studentid']."', DueDate= '".$row['DueDate']."', Specialfee = '".$row['Specialfee']."', TransportFee = '".$row['TransportFee']."', Tution='".$row['Tution']."', Others='".$row['Others']."', Tu_Status='".$row['Tu_Status']."', TR_Status='".$row['TR_Status']."', oth_status='".$row['oth_status']."', ADMIN_NO = '".$row['ADMIN_NO']."' where SyncID = '".$row['SyncID']."'";
            $updateCount++;
        }
        mysql_query($sync_query)or die("err".mysql_error());
    }
}

?>

MySQL肯定会因为高资源使用率而扼杀您。请参阅my.cnf以提高性能,并询问您的数据库管理员是否有。查看使用事务一次插入100行的“批处理”插入。一些可能有用的链接还有: