将PHP代码从MSSQL迁移到MySQL

我目前有一个大型Web应用程序连接到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语法.

点赞