php - 将 PHP 代码从 MSSQL 迁移到 MySQL

标签 php mysql sql-server

我目前有一个连接到 MSSQL 以获取其数据的大型 Web 应用程序。这个网络应用程序有数百个 .php 文件。我有一个新客户,他不想使用 MSSQL,而是使用 MySQL。

我搜索并找到了很多关于如何迁移数据的文章。但这不是我的问题。我知道该怎么做,此外我们将从一个空白数据库开始,除了一些默认目录。

我需要知道的是,是否有一种方法可以自动将 mssql_query 代码更改为 mysqli 代码。例如:

$SqlText = 'SELECT a, b, c FROM table WHERE x=y';
if (!$result = mssql_query($SqlText) {
   die('Error');
}
while ($row = mssql_fetch_assoc($result) {
   echo '<td>' . $row['a'] . '</td>';
   echo '<td>' . $row['b'] . '</td>';
   echo '<td>' . $row['c'] . '</td>';
}

变成这样的东西:

$SqlText = 'SELECT a, b, c FROM table WHERE x=y';
if (!$result = mssqli_query($db, $SqlText) {
   die('Error');
}
while ($row = mssqli_fetch_assoc($result) {
   echo '<td>' . $row['a'] . '</td>';
   echo '<td>' . $row['b'] . '</td>';
   echo '<td>' . $row['c'] . '</td>';
}

此外,如您所见,我使用的是旧的 mssql_query 代码,新版本的 PHP 甚至不支持该代码。是否至少有一个工具可以将我的代码从 mssql_query 更改为新版本的 sqlserv_query 类型的命令?

非常感谢任何帮助。

最佳答案

我认为没有完全自动的方法。因为 MySQL 具有“LIMIT”,例如 MSSQL 具有“TOP”。当然,这不一定是个问题,但我不确定复杂的 MSSQL 查询是否会 1:1 转换为 MySQL。

并建议您使用``符号向MySql指出它是数据库、表或列名的成员。示例:

$SqlText = 'SELECT a, b, c FROM table WHERE x=y';

会变成

$SqlText = 'SELECT `a`, `b`, `c` FROM `table` WHERE `x`=y';

现在你可以像这样查询

'SELECT `select` FROM `datetime` WHERE `limit` = 1'

否则,select、datetime 和 limit 等词会干扰 MySql 语法。

关于php - 将 PHP 代码从 MSSQL 迁移到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12542449/

相关文章:

sql-server - SQL Server 索引 View 列精度

php - 在 INNER JOIN 之后使用 PHP 从第二个表访问值

php - Ajax 推送引擎 (APE) 与 Node.js

mysql - 从主表和子表中获取总和

mysql 查询表连接

sql - 如何根据属性值选择前 3 个?

PHP 运算符 <>

javascript - 如何在同一页面显示结果?

java - 更新我的数据库后更改我的程序?

sql - 如何将一个表的每条记录中的数据复制到与第一个表相关的另一个表的多个记录中?