1

我需要将远程 MS SQL 数据库中的数据存储到本地 MySQL 数据库中;我需要使用 PHP 来做到这一点。

从 MSSQL 中获取数据非常简单:

SELECT orderRef
     , orderValue
  FROM remoteTbl

这会产生 100k 行。我想使用 PHP 将其存储在本地 MySQL 数据库中。简单地说,我可以做(加上我想要的另一个字段):

while(list($orderRef, $orderValue) = mssql_fetch_array($result)){

mysql_query("INSERT INTO localTbl (orderRef, orderValue, updated)
                           VALUES ('$orderRef', '$orderValue', NOW())");

} // done all rows

不过,这对于 100k 行数据来说似乎很浪费。

有什么方法可以更有效地做到这一点吗?

  • 进一步更新评论:

  • 也许通过使用 MSSQL 查询中的 PHP 资源?我需要处理数据,而 MSSQL DBMS 是只读的。

谢谢

4

1 回答 1

0

您可能应该使用 mysqli,因为 mysql 函数将不再存在,但为了加快速度,您可以像这样执行一个大的插入语句。

$sql = "INSERT INTO localTbl (orderRef, orderValue, updated) VALUES ";

while(list($orderRef, $orderValue) = mssql_fetch_array($result)){

    $sql_rows[] = "('$orderRef', '$orderValue', NOW())";

}

mysql_query($sql . implode(',', $sql_rows) . ';');
于 2013-09-03T19:38:53.610 回答